Witam,
Napotkałem na pewien problem z którym nawet google mi nie poradziło. Otóż w pierwszym etapie odczytuje Sekcje
TreeView.Items.Clear;
Data.SQL.Clear;
Data.SQL.Add('SELECT * FROM '+Key_Sekcje);
Data.Active := True;
Data.First;
While not Data.Eof do begin
Id := TreeView.Items.Add(nil, FieldByString(sek_nazwa)).Index;
TreeView.Items[Id].SelectedIndex := FieldByInteger(sek_id);
Data.Next;
End;
Potem odczytuje Kategorie
Data.SQL.Clear;
Data.SQL.Add('SELECT * FROM '+Key_Kategorie);
Data.Active := True;
Data.First;
While not Data.Eof do begin
For X := 0 to TreeView.Items.Count-1 do
If TreeView.Items[X].SelectedIndex = FieldByInteger(kat_sekcja) Then Break;
Id := TreeView.Items.AddChild(TreeView.Items[X] , FieldByString(kat_nazwa)).Index;
TreeView.Items[X].Item[Id].SelectedIndex := FieldByInteger(kat_id);
Data.Next;
End;
Dane wejściowe: "pierwsze to nazwa, druga dana to index, trzecia to index sekcji"
//Sekcji
Sekcja1 1
Sekcja2 2
//Kategorii
Test1 1 1
Test5 2 1
Test3 3 2
Test4 4 1
Drzewo powinno wyglądać tak:
Sekcja 1
- Test1
- Test5
- Test4
Sekcja 2
- Test3
A otrzymuję
Sekcja 1
- Test1
- Test5
- Test 3
- Test4
Sekcja 2
Uważam że problem polega na tym że polecenie Treeview.Items.Count sumuje wszystkie itemu i subitemy. Pytanie jak odnieść się tylko do itemów głównych Sekcja1 Sekcja2 w pętli
{petla powtarzana tyle razy ile jest Sekcji}
Wykonac na Sekcji nr X // 1..2