Показать сообщение отдельно
  #10  
Старый 09.04.2014, 16:58
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Мужики, подскажите пожалуйста, тот код что выше я написал.
Я нажимаю на кнопку, идет проверка переменной S типа string, где должен лежать путь к файлу.
Если он пуст, то открывается opendialog, выбирается файл.
После этого идет еще одна проверка переменной S.
Если она всё еще пуста, то появляется сообщение о том что ничего не выбрано в opendialoge.
Если она не пуста, то загружает в себя картинку выбранного файла, и потом запускает этот файл.

Вот мне надо узнать, при второй проверке переменной S, если она всё еще пуста, (в opendialog`e ничего не выбрал, нажал отмена. ) сделать так что бы кнопка не грузила в себя ничего. Была просто пустой.

Пробовал писать
Код:
speedbutton1.glyph:=nil;
Код как бы работает, но не в тот момент когда мне надо.
В 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;
Ответить с цитированием