Autor Beitrag
AndreM
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

Win2k, WinXP, Suse 10
D7 Ent
BeitragVerfasst: Di 08.02.05 10:51 
Hallo,

ich möchte die X und Y Position eines ausgewählten Items in einem TreeView auswerten um ein PopUpMenü relativ zum ausgewählten Item anzeigen zu lassen. Wie ich das PopUp an einer bestimmten Stelle des Bildschirm anzeigen lassen kann ist soweid klar, aber gibt es auch irgendwie die Möglichkeit beim OnClick Event die Bildschirmkoordinaten des ausgewählten Items zu bekommen?

Hoffe mal ihr hab verstanden was ich meine! :D
wwwdirk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


D6 Prof / D2005 Prof
BeitragVerfasst: Di 08.02.05 11:00 
Hi,

habe ähnliche Problematik mit dem Ereignis OnContextPopup und manuellem anzeigen des Popup-Menüs realisiert.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TfrmConfigMenu.trvMenuExplorerContextPopup(Sender: TObject;
  MousePos: TPoint; var Handled: Boolean);
begin
  if Assigned (trvMenuExplorer.Selected) then
    mnuContextTreeView.Popup (frmConfigMenu.Left + MousePos.X,
     frmConfigMenu.Top + MousePos.Y);
end;


Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.
AndreM Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

Win2k, WinXP, Suse 10
D7 Ent
BeitragVerfasst: Di 08.02.05 11:11 
Da sieht man mal wieder das man erst denken und dann posten sollte. 2 Minuten nachdem ich diesen Beitrag geschreiben habe hab ich selber eine Lösung für mein Problem gefunden! :D

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TMainForm.TreeView_MenueMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  var level : integer;
begin
  level := MainForm.TreeView_Menue.Items.Item[MainForm.TreeView_Menue.Selected.AbsoluteIndex].Level;
  if level = 1 then MainForm.TreeView_Menue.PopupMenu.Popup(X + 50,Y + 60);
end;