![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте, помогите пожалуйста.
Я умею загружать в image путь до файла и его ярлык. То-есть по нажатию на image у меня отображается иконка и запускается программа... Как мне сделать тоже самое на кнопки в которые можно загружать картинки, типа speedbutton. Загружается всё через опендиалог Подскажите пожалуйста! |
#2
|
||||
|
||||
![]() Цитата:
Примерно как-то так: Код:
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; |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Gareth (07.04.2014)
|
#3
|
|||
|
|||
![]() А есть кнопки которые отображают иконки как image ? Что бы не маятся с этими преобразованиями)
Делаю программу, по нажатию какой либо кнопки на мышке будет вызываться моя форма с ярлыками. ![]() А на счет BitBtn ? С ним так же надо будет преобразовывать ? Последний раз редактировалось Gareth, 07.04.2014 в 14:47. |
#4
|
|||
|
|||
![]() Цитата:
Как можно сделать так, что бы отображался любой ярлык?) |
#5
|
||||
|
||||
![]() Цитата:
Цитата:
|
#6
|
|||
|
|||
![]() Poli-smen я новичок, там на всю страницу код, еще и на англ))
Сейчас доходчиво попробую объяснить что конкретно мне надо ![]() У меня есть панель, на ней хочу сделать кнопки, не важно speedbutton или bitbtn... По нажатию по кнопке, будет открываться opendialog, там я буду выберать нужный себе файл. Картинка файла будет грузится в кнопку. И по нажатию этой кнопки будет открываться тот файл который я выбрал в opendialog. Я со всем разобрался, не знаю лишь как загрузить в speedbutton или bitbtn икону ярлыка. Цитата:
Помогите пожалуйста понять как это делается . ![]() Последний раз редактировалось Gareth, 08.04.2014 в 16:36. |
#7
|
||||
|
||||
![]() Цитата:
Код:
procedure TForm1.SpeedButton1Click(Sender: TObject); var ico: TIcon; bmp: TBitmap; FileName: AnsiString; begin if OpenDialog1.Execute then begin FileName := OpenDialog1.FileName; ico := TIcon.Create; try ico.Handle := ExtractIcon(HInstance, Pointer(FileName), 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; end; |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Gareth (08.04.2014)
|
#8
|
||||
|
||||
![]() В модуле ShellApi есть подходящая функция ExtractAssociatedIcon, вот так ей можно пользоваться
Код:
... var Icon : TIcon; Pch: array[0..256] of Char; IconIndex: Word; begin Icon := TIcon.Create; StrPCopy(Pch,'C:\WINDOWS\NOTEPAD.EXE'); Icon.Handle:= ExtractAssociatedIcon(hInstance, Pch, IconIndex); SpeedButton1.Glyph.Width:= Icon.Width; SpeedButton1.Glyph.Height:= Icon.Height; SpeedButton1.Glyph.Canvas.Draw(0, 0, Icon); Icon.Free; end; ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Gareth (08.04.2014)
|