Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изображение иконки программы на кнопке. [D7, WinXP]


Laymer ©   (2005-09-26 14:36:00) 

Здрасте!!!
Нашел такой код программы.
procedure TForm1.Button1Click(Sender: TObject);
var
 IconIndex: word;
 h: hIcon;
begin
 IconIndex := 0;
 h := ExtractAssociatedIcon(hInstance,
   'C:\WINDOWS\NOTEPAD.EXE', IconINdex);

 DrawIcon(Form1.Canvas.Handle, 10, 10, h);
end;


На форме все замечательно рисует изображение, а на кнопке TSpeedButton, рисовать нехочет. Помогите плиз.


ssk   (2005-09-26 15:31:00) [1]

я бы сделал так:


var
 Bitmap: TBitmap;
 IconIndex: word;
 h: hIcon;
begin
 Bitmap := TBitmap.Create;
 Bitmap.Width := 32;
 Bitmap.Height := 32;
 IconIndex := 0;
 h := ExtractAssociatedIcon(hInstance, PAnsiChar(ParamStr(0)), IconIndex);
 DrawIcon(Bitmap.Canvas.Handle, 0, 0, h);
 SpeedButton1.Glyph.Assign(Bitmap);
 Bitmap.Free;
end;


ssk   (2005-09-26 14:56:00) [2]

вот только после клика по кнопке тебя ждет небольшой сюрприз :-)


ssk   (2005-09-26 14:54:00) [3]

добавляешь в модуль:

type
 TMySpeedButton = class(TSpeedButton)
   property Canvas;
 end;

 TForm1 = class(TForm)

...


и исправляешь свой код:

DrawIcon(TMySpeedButton(SpeedButton1).Canvas.Handle, 10, 10, h);

у меня заработало


Наверх

Титульная страница Поиск, карта сайта Написать письмо