![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
На форме есть Image1, по его нажатию (если картинки нет) открывается opendialog1, после выбора файла, в Image1 появляется иконка выбранного файла. Теперь, если еще раз нажать, этот файл запустится! Вот собсно код: Код:
Form1: TForm1;
S:string;
H:HICON;
iconindex:Word;
implementation
...... ... ....
if S='' then
begin
sOpenDialog1.Execute;
S:=sOpenDialog1.FileName;
IconIndex := 1;
if S='' then
begin
ShowMessage('Ничего не выбрано');
end
else
h := ExtractAssociatedIcon(hInstance,PChar(S), IconINdex);
img1.Picture.Icon.Handle := H;
img1.Picture.Graphic := img1.Picture.Icon;
end
else
ShellExecute (Form1.Handle, nil, PChar(S), nil, nil, SW_RESTORE)Я хочу переделать его под кнопку Bitbtn, без компонентов Image1. Что бы в него загружалась та самая иконка. Помогите пожалуйста переделать. Последний раз редактировалось Gareth, 20.08.2013 в 14:17. |
|
#2
|
|||
|
|||
|
Как-то так
Код:
var Ico:TIcon; Ico:=TIcon.Create(); Ico.Handle:=H; BitBtn1.Glyph:=Ico; Ico.Free; |
|
#3
|
|||
|
|||
|
Цитата:
Делаю так Код:
begin
if S='' then
begin
sOpenDialog1.Execute;
S:=sOpenDialog1.FileName;
if S='' then
begin
ShowMessage('Не выбрал');
end
else
h := ExtractAssociatedIcon(hInstance,PChar(S), IconINdex);
Ico:=TIcon.Create();
Ico.Handle:=H;
sBitBtn1.Glyph:=ico;
Ico.Free;
end
else
ShellExecute (Form1.Handle, nil, PChar(S), nil, nil, SW_RESTORE)}
end; |
|
#4
|
||||
|
||||
|
Вообще glyph воспринимает только формат .bmp, а ты в него .ico засунуть пытаешься. Выбрасывай этот код и пиши по новой, будут уже конкретные вопросы обращайся.
|
|
#5
|
|||
|
|||
|
Цитата:
|
|
#6
|
|||
|
|||
|
Извиняюсь, нашёл, сначала не работало, но потом подсказали groupindex.
|