Показать сообщение отдельно
  #2  
Старый 07.04.2014, 11:22
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Gareth
Я умею загружать в image путь до файла и его ярлык. То-есть по нажатию на image у меня отображается иконка и запускается программа...

Как мне сделать тоже самое на кнопки в которые можно загружать картинки, типа speedbutton.
Загружается всё через опендиалог
Компонент TSpeedButton иконки не умеет отображать, он отображает TBitmap, поэтому для отображения иконки в TSpeedButton нужно её преобразовать в TBitmap.
Примерно как-то так:
Код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  ico: TIcon;
  bmp: TBitmap;
begin
  ico := TIcon.Create;
  try
    ico.Handle := ExtractIcon(HInstance, 'C:\WINDOWS\system32\calc.exe', 0);
    bmp := TBitmap.Create;
    try
      bmp.PixelFormat := pf32bit;
      bmp.Width := ico.Width;
      bmp.Height := ico.Height;
      bmp.Canvas.Draw(0, 0, ico);
      SpeedButton1.Glyph.Assign(bmp);
    finally
      bmp.Free;
    end;
  finally
    ico.Free;
  end;
end;
Ответить с цитированием