Форум: "Основная";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
ВнизTreeView Найти похожие ветки
← →
Lony (2003-06-27 11:44) [0]Есть в файле txt или ini такой список:
c:\mydirectory\1\
c:\mydirectory\1\12\
c:\mydirectory\1\12\13\
c:\mydirectory\2\
c:\mydirectory\2\21\
и так далее.
Можно ли всё это получить в компоненте TreeView в причёсанном виде?
← →
Юрий Федоров (2003-06-27 11:47) [1]Однозначно можно
← →
Digitman (2003-06-27 11:51) [2]эта ф-ция делает львиную долю работы :
function ParsePath(const Path: String): TStringList;
var
i,j,k: Integer;
begin
Result:= TStringList.Create;
try
j:= Length(Path);
i:=1;
k:=1;
while i<=j do begin
if IsPathDelimiter(Path, i) then begin
Result.Add(Copy(Path,k,i-k));
k:= Succ(i);
end;
Inc(i);
end;
if (Result.Count > 0) or (i > k) then
Result.Add(Copy(Path,k,i-k));
except
Result.Free;
raise;
end;
end;
← →
Юрий Федоров (2003-06-27 12:05) [3]>>Digitman
А не проще
TStringList.Delimiter
TStringList.DelimitedText
← →
Digitman (2003-06-27 12:14) [4]может и проще)
но в Д5 , кажись, нет таких свойств
← →
Lony (2003-06-27 13:11) [5]>>Digitman
Что делает эта функция?
>>Юрий Федоров
Как это использовать в TreeView? Ведь добавлять надо по пунктам, подпунктам.
← →
Bel (2003-06-27 13:15) [6]> Digitman © (27.06.03 11:51)
А так ещё проще:
StringList.Text := StringReplace(Path, "\", #13#10, [rfReplaceAll]);
← →
Юрий Федоров (2003-06-27 13:15) [7]>>Lony © (27.06.03 13:11)
Эта функция создает список строк TStringList на основе строки с путем.
В списке все папки будут разделены и идти по порядку.
Например для строки c:\mydirectory\1\ получим список из трех элементов:
c:
mydirectory
1
А дальше нужно писать руками
← →
Digitman (2003-06-27 13:17) [8]
> Lony
производит разбор строки, содержащий маршрут, и заносит имена каждого из узлов марштута (в порядке следования в исх.строке) последовательно в создаваемый в кач-ве результата список строк.
имея готовый список ты в цикле проходишь от начала до конца по его элементам, выбирая очередной элемент и создавая в своем TreeView соотв. узел с соотв. именем
← →
Digitman (2003-06-27 13:20) [9]
> Bel
это проще только по написанию и восприятию.
Но сложнее по заметно большему кол-ву внутренних (технологических) перераспределений памяти.
← →
Lony (2003-06-28 02:12) [10]Никого нет примера, как работать с TTreeView?
← →
kaif (2003-06-28 02:21) [11]Чтобы добавить корневой пункт в TreeView нужно использовать
TreeView.Items.Add(nil, s);
Чтобы добавить дочерний пункт в пункт Node нужно
TreeView.Items.AddChild(Node, s);
Подробнее в Help.
← →
Lony (2003-06-28 10:24) [12]Да, но что надо вставить вместо Node? И как добавить в дочернее?
← →
sunwheel (2003-06-28 12:08) [13]
procedure Test;
Var node : TTreeNode;
I : Integer;
S : String;
begin
TreeView1.Items.BeginUpdate;
try
TreeView1.Items.Clear;
S := "Child ";
node := TreeView1.Items.AddChild(nil,"Root");
For I:=0 to 9 do node := TreeView1.Items.AddChild(node,S+IntToStr(I));
finally
TreeView1.Items.EndUpdate;
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c