AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TTreeNode aussuchen u. weitere Knoten anhängen
Thema durchsuchen
Ansicht
Themen-Optionen

TTreeNode aussuchen u. weitere Knoten anhängen

Ein Thema von Chemiker · begonnen am 28. Mär 2007 · letzter Beitrag vom 28. Mär 2007
Antwort Antwort
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#1

TTreeNode aussuchen u. weitere Knoten anhängen

  Alt 28. Mär 2007, 15:44
Hallo,

ich habe folgendes Problem, ich will in einem TTreeView das schon nach dem Root – Knoten noch weiter Knoten aufweist. Unter diesen Kind-Konten weiter Kindknoten anhängen.

Delphi-Quellcode:
Ebene1(Root)
   |
   |----Ebene2Knoten1
   | |------------Ebene3Knoten1
   | |------------Ebene3Knoten2
   |
   |----Ebene2Knoten2
   | |------------Ebene3Knoten3
   | |------------Ebene3Knoten4
 usw.
Wie gesagt die Knoten der Ebene2 sind vorhanden.
Wenn ich jetzt die Knoten der Ebene3 einfügen möchte, so werden diese immer alle unter den letzten Knoten der Ebene2 angehängt.

Mit welchem Befehl kann ich den Knoten der Ebene2 aussuchen, so dass ich darunter die Knoten der Ebene3 anhängen kann?

Delphi-Quellcode:
{----------------------------------------------------------------------------
  Alle Datensätze Durchlaufen und die vorkommen MaGruppe1 in den Baum eintragen
  }

  for I := 1 to Anzahl do
  begin
    MSBez.MSLesen:= i;
     // Alle MaGruppe1 auflisten
     // Prüfen ob die MaGruppe1 schon im Baum vorhanden ist
    if m_Ebene2 = Nil then
    begin
      m_Ebene2:= TreeView1.Items.AddChild(m_Ebene1,MSBez.MaGruppe1);
    end
    else
    begin
      if (not (IsDuplicateEintrag(m_Ebene2,MSBez.MaGruppe1,TRUE))) then
      m_Ebene2:= TreeView1.Items.AddChild(m_Ebene1,MSBez.MaGruppe1);
    end;
  end;
Damit werden die KindKnoten für die Ebene2 erzeugt

Delphi-Quellcode:
{
  Alle Datensätze durchlaufen und die MaBez an die entprechenden MaGruppe1 an-
  hängen.
  }

  for I := 1 to Anzahl do
  begin
    MSBez.MSLesen:= i; // Datensatz lesen

    for z := 0 to m_Ebene1.Count - 1 do
    begin
      if (m_Ebene1.Item[z].Text = MSBez.MaGruppe1) then
      begin
        // Items auszuchen an welcher Stelle angehängt werden soll
        if (NOT(IsDuplicateEintrag(m_Ebene3,MSBez.MaBez,TRUE))) then
        begin

          m_Ebene3:= TreeView1.Items.AddChild(m_Ebene2,MSBez.MaBez);<---- Das fun. nicht richtig !!!!!!!!!
        end;
Das funktioniert leider nicht.



Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#2

Re: TTreeNode aussuchen u. weitere Knoten anhängen

  Alt 28. Mär 2007, 17:04
Hallo,

weist du genau wo du diese Anhängen willst, oder ist das nicht statisch festgelegt? Wenn doch geht es so hier:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  TreeView1.Items.AddChild(TreeView1.Items[1], 'Ebene3Knoten1'); //Ebene1 ist Item 0
  TreeView1.Items.AddChild(TreeView1.Items[1], 'Ebene3Knoten2');
  TreeView1.Items.AddChild(TreeView1.Items[4], 'Ebene3Knoten3'); //Knoten2 ist Item 4, da 2 neue
  TreeView1.Items.AddChild(TreeView1.Items[4], 'Ebene3Knoten4');
end;
Im Anhang habe ich noch das dazugehörende Beispielprojekt, was dir eventuell helfen könnte.

Gruß
Mazel
Angehängte Dateien
Dateityp: zip treeview_136.zip (5,2 KB, 7x aufgerufen)
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TTreeNode aussuchen u. weitere Knoten anhängen

  Alt 28. Mär 2007, 20:26
Hallo Mazel,

Vielen Dank für deine Antwort.
Du hast mich auf den richtigen Weg gebracht, ich habe mich damit schon min. 20h beschäftigt. Ich wollte schon mein Notebook aus dem Fenster werfen, aber manchmal sieht man den Wald vor lauter Bäumen nicht.

Delphi-Quellcode:
{
  Alle Datensätze durchlaufen und die MaBez an die entprechenden MaGruppe1 an-
  hängen.
  }

  for I := 1 to Anzahl do
  begin
    MSBez.MSLesen:= i; // Datensatz lesen

    for z := 0 to m_Ebene1.Count - 1 do // Die Schleife wird solange durchlaufen bis die Anzahl der Knoten in m_Ebene1 erreicht ist
     begin
    if (m_Ebene1.Item[z].Text = MSBez.MaGruppe1) then // Prüfen zu welchen Knoten der m_Ebene1 der Unterknoten gehört.
      begin
        // Items aussuchen an welcher Stelle angehängt werden soll.
             if (NOT(IsDuplicateEintrag(m_Ebene3,MSBez.MaBez,TRUE))) then // Duplikat nicht eintragen
        begin
          m_Ebene3:= TreeView1.Items.AddChild(m_Ebene1.Item[z],MSBez.MaBez);//Unter den Ensprechenden Knoten der m_Ebene1 eintragen
       end;
Nun funktioniert alles tadellos, dank deiner Hilfe.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#4

Re: TTreeNode aussuchen u. weitere Knoten anhängen

  Alt 28. Mär 2007, 20:38
Freut mich, dass ich helfen konnte

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  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 07:47 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