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

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

Иконка нестандартного размера [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.


Наверх

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