Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
7-31532
Leos
2003-04-25 21:35
2003.07.10
ShellListView


1-31232
seal
2003-06-28 17:57
2003.07.10
RichEdit


4-31579
Still Swamp
2003-05-08 18:46
2003.07.10
Thread


1-31282
kudatsky
2003-06-26 12:09
2003.07.10
Ini-файл под Win-2000


9-31064
Кен
2003-01-24 02:20
2003.07.10
GLScene Какие есть редакторы для создания, редактирования, конвер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский