Мужики, подскажите пожалуйста, тот код что выше я написал.
Я нажимаю на кнопку, идет проверка переменной S типа string, где должен лежать путь к файлу.
Если он пуст, то открывается opendialog, выбирается файл.
После этого идет еще одна проверка переменной S.
Если она всё еще пуста, то появляется сообщение о том что ничего не выбрано в opendialoge.
Если она не пуста, то загружает в себя картинку выбранного файла, и потом запускает этот файл.
Вот мне надо узнать, при второй проверке переменной S, если она всё еще пуста, (в opendialog`e ничего не выбрал, нажал отмена. ) сделать так что бы кнопка не грузила в себя ничего. Была просто пустой.
Пробовал писать
Код как бы работает, но не в тот момент когда мне надо.
В 12 строке кода то, что я делаю.
Код:
var
Icon : TIcon;
Pch: array[0..256] of Char;
IconIndex: Word;
begin
if S='' then // если переменная пуста
begin
sOpenDialog1.Execute; //открыть опен-диалог
S:=sOpenDialog1.FileName; //переменная равна выбранному файлу
if S='' then // если переменная по прежнему пуста
begin
sSpeedButton1.Glyph:=nil; // ВОТ ТУТ Я ПИШУ КОД, КОТОРЫЙ ДОЛЖЕН ОЧИСТИТЬ КНОПКУ ОТ КАРТИНОК.
ShowMessage('Ничего не выбрано');
end
else
sSpeedButton1.Glyph:=nil;
Icon:=TIcon.Create;
StrPCopy(Pch,S);
Icon.Handle:= ExtractAssociatedIcon(hInstance, Pch, IconIndex);
sSpeedButton1.Glyph.Width:= Icon.Width;
sSpeedButton1.Glyph.Height:= Icon.Height;
sSpeedButton1.Glyph.Canvas.Draw(0, 0, Icon);
Icon.Free;
end
else
begin
sPanel1.Caption:=S;
ShellExecute (Form1.Handle, nil, PChar(S), nil, nil, SW_RESTORE);
end;
end;