![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Иконка нестандартного размера [D7, WinME]
SergProger © (2006-02-20 13:47:00)Всем привет! Народ, как создать иконку нестандартного размера, например 35x16 и выкинуть в SystemTray. Вообще такое возможно? Заранее спасибо.
Pit (2006-02-20 14:29:00) [1]Растянуть иконку можно так
begin
DrawIconEx(Canvas.Handle, 5, 5, LoadIcon(0, IDI_APPLICATION),
35, 16, 0, 0, DI_NORMAL);
end;
Pit (2006-02-20 13:57:00) [2]Делаешь нужную тебе иконку в любом подходящем редакторе а дальше так
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Shellapi;
const
WM_NOTIFYTRAYICON = WM_USER + 1;
type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
tray: TNotifyIconData;
Ic: TIcon;
begin
Ic:= Image1.Picture.Icon; // здесь твоя иконка
with tray do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage := WM_NOTIFYTRAYICON;
hIcon := Ic.Handle;
szTip := ('имя проги');
end;
Shell_NotifyIcon(NIM_ADD, Addr(tray));
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
tray: TNotifyIconData;
begin
with tray do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Form1.Handle;
uID := 1;
end;
Shell_NotifyIcon(NIM_DELETE, Addr(tray));
end;
end.