![]() |
Problem mit TreeView und PopupMenu
Hi,
ich möchte eine TTreeNode direkt per kontextmenü löschen. nur wie bekomme ich es hin, dass ich weiss, von welchem eintrag das popupmenu aufgeklappt wurde und dass es bei keinem eintrag nicht aufklappt? PLEASE HELP |
Re: Problem mit TreeView und PopupMenu
Du könntest das MenuItem des PopUp Menüs einfach ausgrauen (disablen), wenn kein Node selektiert ist.
z.B.
Delphi-Quellcode:
;
begin
MenuEintrag.Enabled := TreeView.Selected <> nil; Den aktuell ausgewähltem Knoten bekommst du mit der Selected Eigenschaft der TreeView. Ist kein Knoten selektiert ist Selected = nil. mfG mirage228 |
Re: Problem mit TreeView und PopupMenu
@mirage 228: Sorry, aber das ist leider nicht das was ich gesucht habe. nimm dir den windows explorer zum beispiel: da kann man mit rechtem klick auf eine node das jeweilige kontextmenü aufrufen, so möchte ich das auch machen.
|
Re: Problem mit TreeView und PopupMenu
Moin SilentAMD,
Du kannst die Prüfung ja in das OnContextPopup des TreeView legen. Dann kannst Du nicht nur die Menüpunkte vor der Anzeige des PopupMenüs manipulieren, sondern sogar dessen Anzeige ggf. ganz unterdrücken. |
Re: Problem mit TreeView und PopupMenu
danke :dancer2: :mrgreen:
nur wie bekomme ich das item heraus, über dem das kontextmenü aufgeklappt wird? bringt auch rightclickselect etwas? hat jemand ein beispiel? |
Re: Problem mit TreeView und PopupMenu
Das müsste eigentlich gehen, in dem du die Koordinaten des Mausklicks speicherst und über TreeView.GetNodeAt(...) den entsprechenden Knoten ermittelst.
|
Re: Problem mit TreeView und PopupMenu
so wie ich das gemacht habe, löst das eine exception aus :wall: :wall: :wall:
ich habs ungefähr so gemacht
Delphi-Quellcode:
naja so ungefähr (habs nicht getestet)
procedure MenuItem1Click(Sender: TObject);
begin with popupmenu1 do TreeView1.GetNodeAt(mousepos.x, mousepos.y).delete; end; kann erst nachher wieder proggen. PLEASE HELP!!!! |
Re: Problem mit TreeView und PopupMenu
Überprüf mal vor dem delete, ob du überhaupt einen Knoten zurückbekommst oder vielleicht nil.
Wo setzt du eigentlich den Inhalt von mousepos? |
Re: Problem mit TreeView und PopupMenu
Moin SilentAMD,
das
Delphi-Quellcode:
müsstest Du wohl weglassen können.
with Popupmenu1 do
Die Exception rührt wohl daher, dass GetNodeAt nil zurückliefert, da an der gesuchten Stelle keiner ist. Am Besten das Ergebnis von GetNodeAt in eine lokale Arbeitsvariable einlesen, und dann erst einmal prüfen, ob mit dem Wert überhaupt etwas gemacht werden kann (<> nil). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 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