![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
Здравствуйте еще раз Alegun.
Опять создаю динамические компоненты, на этот раз TSpeedButton. По onclick гружу в него иконку с выбранного файла opendialog. Если просто создать несколько кнопок - сохраняет замечательно. Но вот с картинками проблемы, не сохраняются. Процедура OnClick: Код:
sb: TsSpeedButton;
S:array[1..20] of string;
....
implementation
.....
procedure TForm1.SBOnClick(Sender: TObject);
var Icon: TIcon;
Pch: array[0..256] of Char;
Ici: Word;
begin
if S[(sender as TsSpeedButton).tag]='' then
begin
if sOpenDialog1.Execute then
begin
S[(sender as TsSpeedButton).tag]:=sOpenDialog1.FileName;
(sender as TsSpeedButton).Glyph:=nil;
Icon:=TIcon.Create;
StrPCopy(Pch,S[(sender as TsSpeedButton).tag]);
Icon.Handle:= ExtractAssociatedIcon(hInstance, Pch, Ici);
(sender as TsSpeedButton).Glyph.Width:= Icon.Width;
(sender as TsSpeedButton).Glyph.Height:= Icon.Height;
(sender as TsSpeedButton).Glyph.Canvas.Draw(0, 0, Icon);
Icon.Free;
end;
if S[(sender as TsSpeedButton).tag]='' then
begin
(sender as TsSpeedButton).Glyph:=nil;
end
else
end
else
begin
ShellExecute (Form1.Handle, nil, PChar(S[(sender as TsSpeedButton).tag]), nil, nil, SW_RESTORE);
end;
end;Второй день ломаю голову. Толкните в правильном направлении, пожалуйста. Заранее спасибо! З.Ы. Не стал создавать новую тему, так как кнопка создается "Динамически" и пытаюсь сохранить вашим способом. |