Hi,
ich habe ein programm ohne main form, möchte aber ein TrayIcon erstellen. Zum erstellen des Tray Icons gibt es ja genug tuts, nur was ich mich fraghe, wie reagiere ich auf klicks auf das TrayIcon? In allen tuts wied der mainform das hier hinzugefügt:
Delphi-Quellcode:
uses
ShellAPI;
const
WM_TASKABAREVENT = WM_USER+1;
//Taskbar message
[...]
type
TMainForm =
class(TForm)
[...]
private
{ Private-Deklarationen }
procedure TaskbarEvent(
var Msg: TMessage);
Message WM_TASKABAREVENT;
[...]
{Message-Prozedur für das TrayIcon}
procedure TMainForm.TaskbarEvent(
var Msg: TMessage);
var Point : TPoint;
begin
{ Die WM_TaskbarEvent-Message "Msg" gibt in Msg.LParam
das genaue Ereignis an. Msg.LParam kann folgende Werte für
Mausereignisse annehmen:
WM_MouseMove
WM_LButtonDown
WM_LButtonUp
WM_LButtonDblClk
WM_RButtonDown
WM_RButtonUp
WM_RButtonDblClk }
{ Eventhandler-Beispiele von Robert Fischer: }
case Msg.LParam
of
WM_LBUTTONDBLCLK:
begin
//Mach etwas nach einem Doppelklick...
end;
WM_LBUTTONUP:
begin
//Mach etwas nach einem Linksklick...
end;
WM_RBUTTONUP:
begin
// Rechtsklick
// Diese Zeile ist wichtig, damit das PopupMenu korrekt
// wieder geschlossen wird:
SetForegroundWindow(
Handle);
// PopupMenu anzeigen:
GetCursorPos(Point);
PopupMenu1.Popup(Point.x, Point.y);
//oder ohne Variable Point:
//PopupMenu1.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y);
end;
end;
end;
Wie reagiere ich auf klicks ohne mainform? wo sage ich ihm welche procedure er ausführen soll sobald es geklickt wird?
Danke für alle antworten.
MfG Hybrid666