Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TTreeView Eintrag ermitteln
Gabberman - Mo 23.10.06 20:33
Titel: TTreeView Eintrag ermitteln
Hy @ all,
ich hab da mal eine Frage an euch. Ich hab ein Programm geschrieben, bei dem der Benutzer einen Eintrag in ein TreeView hinzufügen kann... Soweit so gut. Jetzt zu meiner eigentlichen Frage: Ein Eintrag ist nun bekannt (wird ausgewählt vom User), soll in dem TreeView gesucht werden und diesem Eintrag ein Child hinzugefügt werden!!! (Auch dieses Child gibt der User selbst ein!)
Weiß jemand wie das geht?!
Es wär echt super wenn ihr mir diese Frage beantworten könntet!!!
Danke
Gabberman
Narses - Mo 23.10.06 20:44
Moin!
Probier das mal so:
Delphi-Quelltext
1:
| TreeView1.Items.AddChild(TreeView1.Selected,'Neu'); |
cu
Narses
Gabberman - Mo 23.10.06 20:49
Narses hat folgendes geschrieben: |
Moin!
Probier das mal so:
Delphi-Quelltext 1:
| TreeView1.Items.AddChild(TreeView1.Selected,'Neu'); |
cu
Narses |
Hm, ne das geht nicht ganz so. Der fügt irgendwie kein Child hinzu. Also nur das wir uns richtig verstehen: Ein Child ist bei mir ein Eintrag der unter einem anderem Root-eintrag erscheint und diesem zugeordnet ist. Bei deiner Variante erscheint da aber ein neuer Root-eintrag...
Narses - Mo 23.10.06 20:53
Moin!
Das hier:
Delphi-Quelltext
1:
| TreeView1.Items.AddChild(TreeView1.Selected,'Neu'); |
bewirkt, dass der neue Eintrag an den aktuell ausgewählten angehängt wird. Ist nix ausgewählt, wird also ein Root-Eintrag angelegt - völlig korrekt. ;)
Klick mal einen Eintrag an und führ dann den Code aus. :D
cu
Narses
Gabberman - Mo 23.10.06 20:55
Narses hat folgendes geschrieben: |
Moin!
Klick mal einen Eintrag an und führ dann den Code aus. :D
|
ACHSO!!! Verstehe... Kann man das aber so machen das das an den eingegebenen String angehangen wird?!
Narses - Mo 23.10.06 20:57
Moin!
Klar, selektier halt den entsprechenden Node im TreeView oder übergib einfach nur die Referenz dazu, statt .Selected. ;)
cu
Narses
Gabberman - Mo 23.10.06 21:00
Narses hat folgendes geschrieben: |
Klar, selektier halt den entsprechenden Node im TreeView oder übergib einfach nur die Referenz dazu, statt .Selected. ;)
|
Irgendwie hab ich grad das Gefühl das ich mich sehr dähmlich anstelle, aber irgendwie hab ich keinen blassen Schimmer wie ich das machen soll!!! Kannst du mir da bitte noch mal helfen?!
Narses - Mo 23.10.06 21:02
Moin!
Schau mal in den Link von
Lannes, da wird das erklärt. ;)
cu
Narses
Gabberman - Mo 23.10.06 21:16
Hm, also ich hab mir den Code jetz mal angeschaut.... Eigentlich hatte ich ja gehofft, dass mir jemand eine einfachere lösung bieten könnte, aber naja :(
Da dies ja nicht der Fall ist, hab ich noch ein paar Fragen zu dem Quelltext, bei denen hoffentlich noch jemand die Nerven hat, diese mir zu beantworten:
Was soll dieser "Delimiter", also was bringt der genau. Und wo kann ich festlegen, was hinter den Knotenpunkt geschrieben wird?!?!
Danke
Lannes - Mo 23.10.06 21:44
Hallo,
mit dem Delimeter trennst Du die einzelnen Nodes.
Angenommen Du hast folgendes im TreeView stehen:
Daran soll jetzt Wohnhausen angehängt werden, damit es dann so aussieht:
Quelltext
1: 2: 3:
| Gerd --Mustermann ----Wohnhausen |
Dafür müsste der Funktionsaufruf dann so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var ReNode : TTreeNode; Path : String; begin Path := 'Gerd\Mustermann\Wohnhausen'; AddTreeNodePathDupIgnore(TreeView1,Path,'\',ReNode,AddSort); end; |
Eine einfachere Lösung ist möglich wenn es in allen Ebenen des TreeView keine doppelt vorhandenen Nodes gibt.
Dann eine Schleife durch das TreeView laufen lassen, den Node suchen und das neue Child anhängen.
Gabberman - Mo 23.10.06 21:54
Zitat: |
Eine einfachere Lösung ist möglich wenn es in allen Ebenen des TreeView keine doppelt vorhandenen Nodes gibt.
Dann eine Schleife durch das TreeView laufen lassen, den Node suchen und das neue Child anhängen. |
Dieser Fall ist vorliegend!!!!!!!
Aber wie soll jetzt diese Schleife aussehen?!
Lannes - Mo 23.10.06 22:49
Hallo,
so ähnlich:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| for z := 0 to TreeView1.Items.Count -1 do if TreeView1.Items[z].Text = 'DaDranHängen' then begin TreeView1.Items.AddChild(TreeView1.Items[z],'Neu'); break; end; |
Gabberman - Di 24.10.06 11:42
GANZ GROßE KLASSE!!! DANKE FÜR EURE HILFE... HAT MICH ECHT WEITERGEBRACHT!!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!