AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Treeview & PopupMenue & GetNodeAt

Ein Thema von Sidores · begonnen am 19. Okt 2005 · letzter Beitrag vom 19. Okt 2005
Antwort Antwort
Sidores

Registriert seit: 17. Sep 2003
Ort: Oldenburg
107 Beiträge
 
Delphi 7 Professional
 
#1

Treeview & PopupMenue & GetNodeAt

  Alt 19. Okt 2005, 15:27
Moin,

Ich möchte das wenn man mit der rechten Maustaste auf ein Treenode klickt sich ein PopupMenue öffnet. Das klappt auch soweit, jedoch öffnet sich auch das PopupMenue, wenn ich neben das Treenode klicke.(GetNodeAt rufe ich in dem Ereignis OnContextPopup auf)Kann ich das irgendwie abfangen? Ich benutze für dieses Projekt Delphi 6. Geht das vielleicht bei Delphi 7,..?


Mfg
Sidores
  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#2

Re: Treeview & PopupMenue & GetNodeAt

  Alt 19. Okt 2005, 15:59
Du könntest das Ereignis OnMouseDown verwenden und von dort das PopupMenu manuell anzeigen.

Delphi-Quellcode:
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  p: TPoint;
  n: TTreeNode;
begin

  n := TreeView1.GetNodeAt(X, Y);

  if (Button = mbRight) and (n <> nil) and (X in [n.DisplayRect(True).Left..n.DisplayRect(True).Right]) then
    if GetCursorPos(p) then PopupMenu1.Popup(p.X, p.Y);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#3

Re: Treeview & PopupMenue & GetNodeAt

  Alt 19. Okt 2005, 20:05
Hallo,

oder so:
Delphi-Quellcode:
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var p : TPoint;
begin
  if (htOnItem in TreeView1.GetHitTestInfoAt(x,y)) then
    begin
      p.x := X;
      p.y := Y;
      p := TreeView1.ClientToScreen(p);
      PopupMenu1.Popup(p.x,p.y);
    end;
end;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Treeview & PopupMenue & GetNodeAt

  Alt 19. Okt 2005, 22:38
Hallo Leute,

in D7 kann man TreeView.RightClickSelect auf TRUE setzen, ordnet der TreeView ein PopupMenu zu und schreibt einen Event-Handler für OnPopup():

Delphi-Quellcode:
procedure TDemoForm.TreeMenuPopup(Sender: TObject);
begin
  with TreeView.ScreenToClient(Mouse.CursorPos) do
    if not (htOnItem in TreeView.GetHitTestInfoAt(x, y)) then
      Abort;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz