F
Ich würde das allgemein so machen (Vorsicht ungetestet, hab ich nur mal schnell zusammengepfriemelt):
int CodeAlarm()
{
TTreeNode *TempNode;
TTreeNode *TempNode2;
TList *NodeListe = new TList
int iRc, iSc;
// alle vorhandene Knoten entfernen
TreeView1->Items->Clear();
// Hauptknoten hinzufügen
TreeView1->Items->Add(NULL, "RootNode");
// Zeiger auf RootNode speichern
TTreeNode RootNode = TreeView1->Items->Item[0];
// alternativ: TTReeNode RootNode = TreeView1->Items->GetFirstNode();
// soviele Unterknoten wie nötig erstellen
for (iSc=0;iSc<Tab_Db->FieldCount;iSc++)
{
TempNode = new TTreeNode;
TempNode = TreeView1->Items->AddChild(RootNode, Tab_Db->Fields->Fields[iSc]->FieldName);
TempNode->ImageIndex = BildNummerauseinerTImageList;
TempNode->MakeVisible();
NodeListe->Add(TempNode);
}
Tab_Db->First();
for (iRc=0;iRc<Tab_Db->RecordCount;iRc++)
{
for (iSc=0;iSc<NodeListe->Count;iSc++)
{
TempNode2 = (TTreeNode*) NodeListe->Items[iSc];
TempNode2 = TreeView1->Items->AddChild(TempNode2, Tab_Db->Fields->Field[iSc]->AsString);
TempNode2->ImageIndex = iSc;
TempNode2->MakeVisible();
}
Tab_Db->Next();
}
// Aufräumen: Listeneinträge und Liste freigeben
for (int i = 0; i < NodeListe->Count; i++)
{
TempNode2 = (TTreeNode*) NodeListe->Items[i];
delete TempNode2;
}
delete NodeListe
}
[ Dieser Beitrag wurde am 13.01.2003 um 11:53 Uhr von F98 editiert. ]