![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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;Второй день ломаю голову. Толкните в правильном направлении, пожалуйста. Заранее спасибо! З.Ы. Не стал создавать новую тему, так как кнопка создается "Динамически" и пытаюсь сохранить вашим способом. |
|
#17
|
||||
|
||||
И вам не хворатьЯ делал в подобной ситуации примерно так - загонял глифы с кнопок в имиджлист а присвоение их для BitBtn Код:
with tbitbtn.Create(self) do
begin
parent:= ...
ImageList1.GetBitmap({номер глифа в имиджлисте} 2, Glyph);
OnClick:= ...
// etc.
end;вам главное понять - что бы не требовалось воткнуть и куда, оно должно быть записано заранее. И всё удастся |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Gareth (29.10.2014)
| ||