Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Popup neben Mauszeiger anzeigen


AxxiD - So 20.07.08 15:57
Titel: Popup neben Mauszeiger anzeigen
Ich bin gerade dabei an einem Programm zu schreiben, was auch bis eben noch schön lief.
Doch als ich anfing mit den Popup's wurde es ein wenig seltsam:
Wenn ich auf meinem TreeView1 rechts klicke (mit der Maus), dann wird ein PopUp angezeigt, was auch so sein soll, allerdings wird dieses nicht direkt neben dem Curser angezeigt sondern irgendwo auf dem Bildschirm (Entfernung von CLientecke-oben-links zum Curser entspricht der Entfernung von Bildschirmecke-oben-links zum PopUp)
Dabei ist das Form an sich allerdings nicht maximiert und das soll auch so bleiben.

Was muss ich tun, damit das PopUp direkt neben dem Mauszeiger auch angezeigt wird?

EDIT: falls das hier woanders reingehört: bitte verschieben


Moderiert von user profile iconGausi: Topic aus Sonstiges (Delphi) verschoben am Mo 21.07.2008 um 13:01


Gausi - Mo 21.07.08 13:00

Wie lässt du das denn bisher aufpoppen? Über das MouseDown-Event des Treeviews? Dann wäre ClientToScreen bzw. ScreenToClient was für dich, um die Koordinaten umzurechnen.

Aber:

Einfacher wäre es, wenn du das Popupmenü, was da aufpoppen soll, beim Treeview einträgst - da sollte es eine Eigenschaft PopupMenu geben. Das OnMouseDown muss dann natürlich wieder weg. ;-)


AxxiD - Mo 21.07.08 13:03

Ich hatte das mit dem MouseDown Event versucht, aber deine einfachere Methode hab ich gleich ausprobiert und funktioniert wunderbar!
Danke.