![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте, на форме есть компонент Image в него загружается иконка программы...
По нажатию на Image, открывается программа но иконка программы пропадает. Почему так получается? Как заставить не исчезать иконку, что делаю не так? Скажите пожалуйста! Вот код: Код:
var
Form1: TForm1;
S:string;
....
....
procedure TForm1.sButton1Click(Sender: TObject);
var H:HICON;
IconIndex:Word;
begin
if sopendialog1.Execute then
begin
S:=sopendialog1.FileName;
IconIndex := 1;
h := ExtractAssociatedIcon(hInstance,PChar(S), IconINdex);
DrawIcon(Canvas.Handle ,0, 0, h);
end;
end;
procedure TForm1.img1Click(Sender: TObject);
begin
if S='' then
ShowMessage('бла бла бла...')
else
ShellExecute (Form1.Handle, nil, PChar(S), nil, nil, SW_RESTORE);
end;Последний раз редактировалось Gareth, 21.07.2013 в 19:56. |
|
#2
|
|||
|
|||
|
Цитата:
иконка пропадает, т.к. теряется после отрисовки. Тебе надо сохранить эту иконку, что бы потом, при следующий перерисовке формы она отрисовалась. Можно попробовать так: Код:
procedure TForm1.sButton1Click(Sender: TObject); var H:HICON; IconIndex:Word; begin if sopendialog1.Execute then begin S:=sopendialog1.FileName; IconIndex := 1; h := ExtractAssociatedIcon(hInstance,PChar(S), IconINdex); image1.Picture.Icon.Handle := h; image1.Picture.Graphic := image1.Picture.Icon; end; end; |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Gareth (21.07.2013)
| ||
|
#3
|
|||
|
|||
|
Цитата:
|