![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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)
| ||