[Gelöst] Problem mit TTreeView



  • HI

    Ich möchte gerne Sachen in einem TTreeView abbilden!
    Vorher möchte ich aber prüfen ob es so einen Eintrag nicht schon gibt!

    Das mache ich so:

    AnsiString CompName;
      AnsiString Pfad;
      AnsiString Name;
      TTreeNode *Node;
      bool exist = false;
      Dirs->Items->Clear();
      Dirs->Items->Add(NULL,"/");
      Node = Dirs->Items->Item[0];
    
      for(int i = 0; i < TempList->Count; i++)
      {
              CompName = TempList->Strings[i].SubString(1,TempList->Strings[i].Length() - 2);
          CompName.Delete(1,CompName.Pos("\"/\"") + 3);
          if(CompName.Pos("/") != 0)
            Name = CompName.SubString(1,CompName.Pos("/") - 1);
          else
            Name = CompName;  // Hier steht also der Name des neuen Nodes drinne
          CompName = CompName.Delete(1,CompName.Pos("/"));
          exist = false;
          for(int x = 0; x < Node->Count;x++)
          {
            if(Node[x].Text == Name)  // Hier Ändern
            {
              x = Node->Count;
              exist = true;
            }
    
          }
          if(!exist)
          {
            Dirs->Items->AddChild(Node,Name);
          }
        }
    
      }
    

    Das klappt aber nur bis i = 2 ist (Count ist in dem Fall = 3) Dann bekomme ich eine Exeption! Mache ich was falsch oder woran kann das liegen!

    Wenn ich erlich sein soll Habe ich das prinzip was dahinter steht auch noch nicht 100% verstanden trotz langem Hilfe lesen!

    THX

    Dagsta

    Lösung:

    Node->Item[x]->Text // So muss das sein
    

    Editiert weil falsche Code version 😉



  • Hallo

    an welcher Stelle tritt denn die Exception auf?
    Um das zu klären, must du das Programm debuggen.
    Wie das geht, findets du z.B. hier http://www.junix.ch/bcb/help/debug.html

    bis bald
    akari


Log in to reply