Форум: "WinAPI";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
ВнизХочу прогамму в Tray положить Найти похожие ветки
← →
Eraser (2002-02-07 08:57) [0]Люди добрые не откажите в помощи. Есть код:
const
WM_NOTIFYTRAYICON = WM_USER + 1;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure WMTRAYICONNOTIFY(var Msg: TMessage);
message WM_NOTIFYTRAYICON;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses ShellAPI;
procedure TForm1.WMTRAYICONNOTIFY(var Msg: TMessage);
var
s: String;
begin
case Msg.LParam of
WM_MOUSEMOVE: s := "Мышь сдвинута";
WM_LBUTTONDOWN: s := "Левая кнопка нажата";
WM_LBUTTONUP: s := "Левая кнопка отпущена";
WM_LBUTTONDBLCLK: s := "Два раза нажата левая кнопка";
WM_RBUTTONDOWN: s := "Правая кнопка нажата";
WM_RBUTTONUP: s := "Правая кнопка отпущена";
WM_RBUTTONDBLCLK: s := "Два раза нажата правая кнопка";
else s := IntToStr(Msg.LParam);
end;
ListBox1.Items.Add(s);
ListBox1.ItemIndex := ListBox1.Items.Count - 1;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
tray: TNotifyIconData;
Ic: TIcon;
begin
Ic := TIcon.Create;
Ic.LoadFromFile("factory.ico");
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_MODIFY, Addr(tray));
Ic.Destroy;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
tray: TNotifyIconData;
Ic: TIcon;
begin
Ic := TIcon.Create;
Ic.LoadFromFile("chip.ico");
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));
Ic.Destroy;
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;
хороший код, не спорю. Вопрос в следующем как мне поступить чтобы упрать форму с панели задач при сворачивании , чтобы она была только в tray"е?? И могу ли к иконке приделать что то типа PopupMenu??
И вообще в C++Builder есть компонет TTrayIcon который это все делает может и у Delphi что-то типа такого есть?
Если неохота отвечать то хотя бы дайте ссылку где про это можно почитать!!!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c