![]() |
2 Menüs bei Rechtsklick auf TrayIcon
Liste der Anhänge anzeigen (Anzahl: 2)
Guten Morgen,
ich habe bei mir mit meinem TrayIcon ein, nicht gerade großes aber dennoch nicht schönes, Problem. Ich lege mein Programm in der TNA mit einem Icon ab, mein Programm hat ein Popup-Menu welches bei einem Rechtsklick erscheint. Nun ist es aber so, dass, obwohl ich ein Rechtsklick auf die Mitte des Icons setzte, nicht nur mein Popup-Menu erscheint, sondern auch das was sonst dort erscheinen soll, wenn man kein Rechtsklick auf das Icon setzt, sondern daneben. Im Anhang habe ich ein Bild (A) zur Veranschaulichung. Man könnte denken, dass mein Menu im Vordergrund ist, ist es aber nicht. Fahre ich mit der Maus drüber, so "verschmelzen" beide miteinander. Bild (B). Ich nutzte zwar eine Komponente (CoolTrayIcon), aber ich habe es auch mit dem Code aus der Code-Lib versucht, jedoch mit dem selben Ergebnis. Dieser Effekt kommt nicht immer aber wenn er kommt ist ein 2. Effekt zu sehen und zwar verschwindet das Menu nicht mehr, wenn man wo anders klickt, mann muss erst auf "Desktop anzeigen" klicken. Hat jemand eine Lösung oder den selben Effekt gehabt und nun wegbekommen? Gruß Mazel |
Re: 2 Menüs bei Rechtsklick auf TrayIcon
Poste mal ein bischen Code um zu sehen wie du dein Trayicon ablegst, vieleicht liegt da der Fehler. Ohne Code läßt sich das schwer sagen.
|
Re: 2 Menüs bei Rechtsklick auf TrayIcon
Nutze zum Anzeigen des Popupmnüs das Loslassen der Maustaste und nicht das Drücken.
|
Re: 2 Menüs bei Rechtsklick auf TrayIcon
Ok erstmal hier der schon abgeänderte Code:
Delphi-Quellcode:
@Luckie: Es scheint zu funktionieren, nach mehrfachen Tests ist der Effekt nicht wieder aufgetreten. :thumb:
{--[WndProc]-------------------------------------------------------------------}
procedure TMain.WndProc(var Msg: TMessage); var Point: TPoint; begin If Msg.Msg = WM_USER + 20 then begin case Msg.LParam of WM_RBUTTONUP: // vorher WM_RBUTTONDOWN begin SetForegroundWindow(Handle); GetCursorPos(Point); Popup.PopUp(Point.X, Point.Y); end; end; end; inherited; end; Wie bist du auf die Idee gekommen das Popup beim Loslassen anzuzeigen? Welcher Grund steckt dahinter? Mfg Mazel |
Re: 2 Menüs bei Rechtsklick auf TrayIcon
Grundlegend sollte die Click Aktion auf eine Maustaste erst erfolgen, wenn diese losgelassen wird. Der Benutzer kann sich beim verklicken oder sonstigen Aktionen immernoch überlegen, ob er die Aktion ausführen will. Beispiel: Ein Button (z.B. ShowMessage/MessageDlg): Drück den Button, fahr mit der Maus ausserhalb des Buttons und lasse los. Die Aktion wird nicht ausgelöst.
|
Re: 2 Menüs bei Rechtsklick auf TrayIcon
Stimmt, das ist ein einleuchtendes Beispiel.
Danke. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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