Autor Beitrag
Mysterio08
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Sa 28.08.10 09:49 
Hallo,

wahrscheinlich ist mein Problem ganz trivial, aber ich bekomme es nicht so elegant hin, wie ich es mir wünsche: Ich habe einen Button und möchte nun, dass sich bei einem Klick auf eben diesen Button ein PopUp-Menü öffnet.
Natürlich habe ich es Befehl PopMenu.Popup schon ausprobiert, das Problem ist dann jedoch, dass das PopUP-Menu außerhalb meiner (kleinen) Form angezeigt wird (mit den Parameter X und Y gibt man ja die Koordinaten des Screens an). Ich möchte gerne, dass es so geöffnet wird, wie man es auf dem Screenshot sieht.

mfg.
Einloggen, um Attachments anzusehen!
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 28.08.10 10:02 
Hallo,

irgendwie fehlt da ein Screenshot in deinem Beitrag, meinst du nicht. Zuerst was Ankündigen und uns dann warten lassen ist fies. :mrgreen:

Zu deinem Problem: Warum übergibst du nicht Mouse.CursorPos.X und Mouse.CursorPos.Y? Dann sollten das Popup genau bei deiner Maus aufgehen.

Wenn du aber willst das es an einer bestimmt Stelle in deinem Formular aufgehen soll kannst du mittels Button1.ClientToScreen(Point(Self.Width + 10)) die X und Y Koordinaten an einer bestimmten Stelle herausfinden (in meinem Beispiel ist es rechts vom Button auf gleicher Höhe mit der oberen Kante des Buttons).

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 28.08.10 10:05 
Hi, Versuch mal Deine ButtonKoordinaten zu nehmen
x:=button.left, y:= button.hight+1 als Beispiel.

oops, wahr jemand schneller :wink:
Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 28.08.10 10:15 
Gut, wenn du das Popupmenü an der Stelle haben willst musst du natürlich das so schreiben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TheButtonOnClick(Sender: TObject);
  var pnt: TPoint;
begin
  {...}
  pnt := TheButton.ClientToScreen(Point(0, Self.Height)); //ev. zum Height ein + 1 oder + 2 schreiben damit es so aussieht wie am Screenshot
  PopupMenu.PopUp(pnt.X, pnt.Y);
  {...}
end;


lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Mysterio08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Sa 28.08.10 12:58 
Danke, ich habe es mit Eurer Hilfe hinbekommen, ich musste die Variable Pnt vom Typ TPoint aber wie folgt initialisieren:
Pnt := BtnAenderungen.ClientToScreen(Point(0, BtnAenderungen.Height))

[Edt]Man kann den Anhang meines ersten Beitrages aber schon sehen, oder? elundril Beitrag hat mich ein wenig verwirrt![/edt]
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 28.08.10 13:10 
Wie ich damals die 1.Antwort geschrieben habe, war keine Anhang weit und breit zu sehen, deswegen hab ich mal einen Blindflug gewagt mit dem Ziel den Kurs zu korrigieren sobald ich mehr Informationen (den Screenshot) hab. Sorry, für die Verwirrung.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.