Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Treeview & Listbox

Автор: 18192123 8.01.2009 3:41

Есть ListBox1, ListBox2, ListBox3, каждый из которых содержит некоторые записи.
По нажатию на кнопку требуется занести в TreeView1 эти записи...


TreeView1.Items.Clear;

TreeView1.Items.Add(nil,'цех1');
begin
for i:=0 to ListBox1.Count-1 do
TreeView1.Items.AddChild(TreeView1.Items.Item[i],listbox1.Items.Strings[i]);
end;

TreeView1.Items.Add(nil,'цех2');
begin
for j:=0 to ListBox2.Count-1 do
TreeView1.Items.AddChild(TreeView1.Items.Item[j],listbox2.Items.Strings[j]);
end;

TreeView1.Items.Add(nil,'цех3');
begin
for k:=0 to ListBox3.Count-1 do
TreeView1.Items.AddChild(TreeView1.Items.Item[k],listbox3.Items.Strings[k]);
end;


т.е. в итоге должно получиться
+цех1
....
....
....
+цех2
....
....
....
+цех3
....
....
....

А получается, что все записи попадают в цех1...
Объясните пожалуйста, как достичь желаемого результата?

Автор: volvo 8.01.2009 4:40

Цитата(18192123 @ 7.01.2009 22:41) *
Объясните пожалуйста, как достичь желаемого результата?
Вот так, например:
var node: TTreeNode;
...
TreeView1.Items.Clear;

node := TreeView1.Items.Add(nil,'цех1');
for i:=0 to ListBox1.Count-1 do
TreeView1.Items.AddChild(node,listbox1.Items.Strings[i]);

node := TreeView1.Items.Add(nil,'цех2');
for j:=0 to ListBox2.Count-1 do
TreeView1.Items.AddChild(node,listbox2.Items.Strings[j]);

node := TreeView1.Items.Add(nil,'цех3');
for k:=0 to ListBox3.Count-1 do
TreeView1.Items.AddChild(node,listbox3.Items.Strings[k]);