IDÉZET(marcee5 @ 2005. június 4. 22:49)

Szeretnék a programomhoz Tálcaikont készíteni és rákantintáskor jöjjön elő egy pop-up menü. Próbálkoztam sokszor, de nem találok se parancsot, se ilyen segédkomponenst. Középhaladó vagyok a Delphiben. előre is köszi.
NA IDE IS BEKERÜL A SZORSZ...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI, Menus;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
item11: TMenuItem;
item21: TMenuItem;
item31: TMenuItem;
item41: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
TrayIcon: TNotifyIconData;
procedure WndProc(var Msg: TMessage); override;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WndProc(var Msg: TMessage);
var p : TPoint;
begin
case Msg.Msg of WM_USER + 1 : //az üzenet azonosítója
case Msg.LParam of
WM_RBUTTONDOWN : //kattintás az egér jobb gombjával
begin
GetCursorPos(p); //a kurzor pozíciója a kattintáskor
PopupMenu1.Popup(p.x,p.y); //a menü kinyitása
end;
WM_LBUTTONDBLCLK : //bal dupla-kattintás
begin
Form1.Show;
end;
WM_LBUTTONDOWN : //kattintás az egér bal gombjával;
end;
end;
inherited; //a le nem kezelt üzenetek elintéztetése
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with TrayIcon do
begin
cbSize := SizeOf(TrayIcon);
Wnd := Handle; {A FőForm Handle-je }
uId := 100;
uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
uCallBackMessage := WM_USER + 1;{A Formnak küldött üzenet azonosítója}
hIcon := Application.Icon.Handle; {A megjelenítendő ikon Handle-je}
szTip := 'Az ikonhoz tartozó tipp...'; {Az ikonhoz tartozó tipp}
end;
Shell_NotifyIcon(NIM_ADD, @TrayIcon); {A függvény meghívása}
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Shell_NotifyIcon(NIM_DELETE, @TrayIcon);
end;
end.