![]() |
Absolute Position eines Buttons
Hallo,
ich möchte gerne die absolute Position (bezogen auf den Screen) eines Buttons zur Laufzeit ermitteln. Der Grund ist, das ich per Linksklick ein Kontextmenü einblenden möchte (Menu.Popup(x, y)) welches exakt den aufrufenden Button überlagert. Bei dem OnClick Ereignis wird doch immer das Objekt der Buttons (Sender) mitgeliefert.
Delphi-Quellcode:
Kann man aus dem Objekt die Position auslesen?
procedure Tfrm_main.BitBtn1Click(Sender: TObject);
Ich habe bisher den Umweg über die Einzelnen Top- und Left-Werte bis hin zum Button genommen. Aber ich ereiche die Position des Buttons nicht korrekt. Gruß Holger. :gruebel: |
Re: Absolute Position eines Buttons
|
Re: Absolute Position eines Buttons
Danke, das klappt soweit.
Wenn ich die Position meines Buttons auf der Form ermittle und dann umrechnen lasse erscheint das Popup mit seiner Ecke oben links genau auf der Ecke oben links des Buttons. Ich hätte es aber gern synchronisier mit der Ecke unten links. Kann ich die Breite meines Menüs zur Laufzeit abfragen? :gruebel: |
Re: Absolute Position eines Buttons
Naja, dann ist es einfach
Delphi-Quellcode:
Menu.Popup(x, y + Button.Height);
|
Re: Absolute Position eines Buttons
Nein, das meinte ich nicht.
Vielleicht hab ich mich auch falsch ausgedrückt. Ich möchte gerne das Menü so einblenden das seine untere rechte Ecke genau über der unteren rechten Ecke des Buttons liegt. |
Re: Absolute Position eines Buttons
Okay, sorry. Das ist natürlich was anderes...
LG, Markus P.S.: Wenn Dein Popup immer die Selbe Breit hat, dann kannst Du ja einfach ein bisschen mit Werten rumaddieren bis es passt. Ist natürlich nicht elegant, aber würde gehen, oder? |
Re: Absolute Position eines Buttons
Ja klar,
so hab ich es momentan ja gelöst. Mit festen Werten als negativer Offset. Aber ich dacht es gäbe evtl. eine elegantere Lösung. |
Re: Absolute Position eines Buttons
Die gibt es bestimmt. Mir jedenfalls ist sie nicht bekannt.
LG, Markus |
Re: Absolute Position eines Buttons
OK.
Trotzdem Danke für den ersten Tipp. Ich mach den Thread jetzt zu. Gruß Holger. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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