![]() |
TTrayIcon: PopUp-Menü bei keiner Auswahl ausblenden
Hallo,
ich habe ein Programm mit einem TTrayIcon das ein PopUp-Menü aufruft. Soweit funktioniert alles ganz normal. Nur kenn ich das von anderen Programmen mit TrayIcons und PopUp-Menü, dass das PopUp-Menü verschwindet, wenn man es zwar öffnet, aber nichts auswählt und dann in die Taskleiste klickt. (z. B. beim Outlook-Icon). Wie kann ich das bei mir mit dem TTrayIcon realisieren? |
AW: TTrayIcon: PopUp-Menü bei keiner Auswahl ausblenden
Das sollte eigentlich Standard sein. Zumindest bei mir funktioniert das ohne irgend ein Zutun. :shock:
|
AW: TTrayIcon: PopUp-Menü bei keiner Auswahl ausblenden
mmh - ich hätt doch zuerst das Ganze noch in einem Testprogramm testen sollen
Jedenfalls in nem Testprogramm funktioniert es. In meinem eigentlichen Programm blende ich bei Programmstart die MainForm hiermit aus:
Delphi-Quellcode:
Und dieser Code ausgeführt und schon funktionierts nicht mehr.
Hide;
WindowState := wsMinimized; Mein Programm hat eigentlich keine MainForm - nur das PopUp |
AW: TTrayIcon: PopUp-Menü bei keiner Auswahl ausblenden
Du möchtest das Popup Menu schließen? wenn du nichts auswählst.
Ich habe das so gelöst. Bei dir könnte es aber das Problem geben das ein PopUpMenu kein Fensterhandle hat.
Delphi-Quellcode:
gruss
var
gP.ProgManHandle := FindWindow('Progman', 'Program Manager'); ........ WM_TIMER: begin if wP = POPUP_TIMER then begin gP.FocusHandle := GetForegroundWindow; if gP.FocusHandle = gP.ProgManHandle then begin if SkinEngine.IsLButtonDown then begin KillTimer(WinHandle, POPUP_TIMER); ShowWindow(WinHandle, SW_HIDE); if Assigned(SkinPopUpMenu) then begin gP.DlgItem := 0; SkinPopUpMenu.DestroyWindow; end; end; end; end; end; |
AW: TTrayIcon: PopUp-Menü bei keiner Auswahl ausblenden
Das Problem ist, dass ich meine MainForm ausblende (weder Fenster noch Taskbar-Button sichtbar) und somit der Fokus (wie ich es denke) nicht mehr an die MainForm übergehen kann.
|
AW: TTrayIcon: PopUp-Menü bei keiner Auswahl ausblenden
Ich habe in einem aktuellen Projekt die selben Anforderungen wie du. Kein MainForm und ein TrayIcon mit PopUp-Menü. Bei mir funktioniert das Ausblenden bei keiner Auswahl jedoch.
Ich habe das Ausblenden der MainForm direkt beim Programmstart in der Projektdatei realisiert:
Delphi-Quellcode:
Application.ShowMainForm := false;
Vllt macht das den kleinen aber feinen Unterschied? Du meintest ja, dass es in einem Testprojekt geht. Du kannst ja dein Testprojekt mal soweit ausbauen, dass du auch dort das MainForm ausblendest. Grüße Headbucket |
AW: TTrayIcon: PopUp-Menü bei keiner Auswahl ausblenden
Hallo,
Delphi-Quellcode:
ergibt leider das gleiche Ergebnis.
Application.ShowMainForm := false;
Das PopUp-Menü bleibt da (nur die Taskleiste kommt nach vorne) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz