Hallo Luckie,
das mit SetForegroundWindow funktioniert aber auch nur, weil du in deinem Beispiel eine Form hast
Delphi-Quellcode:
procedure TForm1.WndProc(
var Msg: TMessage);
var
Point: TPoint;
begin
// WM_USER + 20 ist unsere TNA Icon Nachricht
if Msg.Msg = WM_USER + 20
then
begin
// im lParam steht die Nachricht
case Msg.lParam
of
// rechte Taste für Menü
WM_RBUTTONDOWN:
begin
SetForegroundWindow(
Handle);
GetCursorPos(Point);
PopUpMenu1.PopUp(Point.X, Point.Y);
end;
Ich hab auch eine TrayIcon-Komponente, die aber auf TComponent aufbaut und da hab ich leider keine Form und dadurch auch kein
Handle. (jedenfalls hab ich keines gefunden).
Ich hab nämlich das selbe problem mit dem Dauer-im-Vordergrund-Sein des PopUps bei Nicht-draufklicken
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<