Witam
Chcialbym uzyc metody IndexOf obiektu TTreeNode ,ale nie potrafie poprawnie stworzc dynamicznie obiektu tej klasy:
TTreeNode *t = new TTreeNode();
t->Text = "rozdzial1"; //access violation
int index = TreeView1->Items->Item->IndexOf(t);
Witam
Chcialbym uzyc metody IndexOf obiektu TTreeNode ,ale nie potrafie poprawnie stworzc dynamicznie obiektu tej klasy:
TTreeNode *t = new TTreeNode();
t->Text = "rozdzial1"; //access violation
int index = TreeView1->Items->Item->IndexOf(t);
jestes pewien ze treenode'y mozna sobie ot tak tworzyc? accessviolation pewnie wzial sie stad, ze node nie jest przypiety do drzewa.. zastanawia mnie tez ten indexof -- podejrzewam ze chcesz po prostu wyszukac tekst 'rozdzial1' na drzewku? to chyba nie tedy droga - sadze ze w tym przypadku indexof zwroci ci indeks TEGO treenode'a a nie jego odpowiednika w drzewie
..ale nie jestem borlandowcem, moge sie mylic:)
Co prawda w C++Builder jestem początkujący (bardziej JBuilder i Delphi), ale udało mi się
napisać coś takiego.
Utwórz na próbe nowy projekt i pusty formularz, wkopiuj kod do metody 'OnFormActivate'
formularza głównego i uruchom.
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
TTreeView* Tree = new TTreeView(this); // this - musimy ustalic wlasciciela
Tree->Parent = this;
Tree->Left = 50;
Tree->Top = 50;
Tree->Items->Add(0, "pierwszy");
Tree->Items->Add(0, "drugi");
TTreeNode* Node1 = Tree->Items->Item[0];
TTreeNode* Node2 = Tree->Items->Item[1];
TListBox* ListBox = new TListBox(this);
ListBox->Parent = this;
ListBox->Left = 200;
ListBox->Top = 50;
int Index1 = Tree->Items->Item[0]->IndexOf(Node1);
int Index2 = Tree->Items->Item[1]->IndexOf(Node2);
ListBox->Items->Add(IntToStr(Index1) + " - " + Node1->Text);
ListBox->Items->Add(IntToStr(Index2) + " - " + Node2->Text);
}
//---------------------------------------------------------------------------