Autor Beitrag
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Sa 08.05.04 12:23 
Hallo,
ich habe beim Positionieren eines Popup-Menüs Probleme. Ich möchte, dass das PopupMenu so positioniert wird, wie im rechten Bild, wobei ich den roten Punk als Ausrichtungspunkt verwenden möchte. Bei einem normalen Aufruf über Popup();, wird das Menü so wie im linken Bild ausgerichtet - so soll's nicht aussehen..

// Edit: Bild entfernt (Webspace geht zur Neige ;))

Danke,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.


Zuletzt bearbeitet von maxk am Di 24.08.04 16:51, insgesamt 1-mal bearbeitet
toms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: Sa 08.05.04 12:56 
Hi,

Du kannst die PopUp Methode des PopupMenus aufrufen, um
das Popupmenu anzuzeigen.
Der 1. Parameter ist die X-Koordinate, welcher du die X-Koordinate der
aktuellen Mausposition übergibst.

Der 2. Parameter die Y-Koordinate, welcher du die Y-Koordinate der
aktuellen Mausposition plus des Höhe PopupMenus übergibst.
Das Problem ist, wie die Höhe des PopupMenus zu bestimmen.
(GetWindowRect funktioniert nicht!)

Der Code mal soweit:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
 P: TPoint;
begin
 if Button = mbRight then
 begin
   P:=(Sender as TButton).ClientToScreen(Point(X,Y));
   PopupMenu1.PopUp(P.X{+ Höhe TPopupMenu } ,P.Y);
 end;
end;