У меня есть TreeView
, показывающий расположение файла и последующие папки внутри него:
I then have a Memo
showing some drive letters:
введите описание изображения здесь
Затем у меня есть DBGrid
с двумя полями с именами: location
и usb
То, что я пытаюсь сделать:
Получите первое имя Node
под RootNode
, а также первое line
в Memo
и добавьте их к первому row
в Grid
- Node
имя под field location
и Memo line
под field usb
.
Продолжайте делать то же самое с остальными (Node
# 2 имя под RootNode
и Memo line
# 2 находится под DBGrid row
# 2 местоположением и row
# 2 usb и так далее ..), пока он не достигнет последней строки на Memo
.
Затем продолжите вниз по TreeView Node
, добавляя Node
имя к field
с именем location
, но начиная с первой строки в Memo
для соответствующего field
с именем usb
.
Для приведенного выше примера конечный результат в виде строк в сетке будет:
location usb
---------------------------
New Folder G
New Folder - Copy H
New Folder - Copy (10) I
New Folder - Copy (11) J
New Folder - Copy (12) G
New Folder - Copy (13) H
New Folder - Copy (14) I
New Folder - Copy (15) J
New Folder - Copy (2) G
New Folder - Copy (3) H
New Folder - Copy (4) I
New Folder - Copy (5) J
New Folder - Copy (6) G
New Folder - Copy (7) H
New Folder - Copy (8) I
New Folder - Copy (9) J
Код на данный момент:
with ClientDataSet1 do
begin
for i := 0 to Memo2.Lines.Count -1 do
begin
Append;
FieldByName('usb').AsString := Memo2.Lines[i];
Post;
end;
end;
with ClientDataSet1 do
begin
for i := 1 to TreeView1.Items.Count -1 do
begin
Append;
FieldByName('location').AsString := TreeView1.Items.Item[i].Text;
Post;
end;
end;
Это явно нежелательно, поскольку он вводит отдельные строки - не то, что я описываю выше.
Потом попробовал что-то вроде e это:
with ClientDataSet1 do
begin
for i := 1 to TreeView1.Items.Count -1 do
for i2 := 0 to Memo2.Lines.Count -1 do
begin
Append;
FieldByName('location').AsString := TreeView1.Items.Item[i].Text;
FieldByName('usb').AsString := Memo2.Lines[i2];
Post;
end;
end;
Но это, очевидно, просто добавляет 4 строки, содержащие буквы дисков по порядку, но с тем же именем узла, для каждого узла. Наверное, это тоже глупый подход, я никогда полностью не понимал циклы, они обычно меня сбивают с толку.
Как я могу получить желаемый результат?