Проблема с Ttreeview (trzchecktree в частности)

25.07.2010
4
0
#1
:) Нужна помощь по RaizePack (версии не помню), хотя и в простом TTreeView я тоже с этим столкнулся.
Ситуация такая:
на форме присутствует TRzCheckTree (или TTreeView), подключен inifiles, нужно выполнить ReadSections и ReadStrings так, чтобы можно было добавить в список пункты по названиям секций INI-шки, а по клику на "плюсик" появлялся список "подпунктов", проименованый простыми строками из INI-шки..... при работе с StringList
ini.ReadSections(stringlist);
treeview.items.add(stringlist);
идёт ругань, что, мол, дословно, несовместимы типы TTreeNode и TStringList.

То есть что, собственно, надо-то:

Есть INI-файл -
[секция1]
пункт1=...
пункт2=...
[секция2]
пункт5=...
...

Должно быть в Treeview -
[+] секция1
[+] секция2


[-] секция1
|---пункт1
|---пункт2
[-] секция2
|--пункт5
...

Ещё я не понял что за TTreeNode'ы, как их готовить и с чем их есть х)
Объяснил хреновенько, зато наглядно)) заранее благодарен.
 
09.11.2009
665
1
#2
Ещё я не понял что за TTreeNode'ы
я это тоже не понял, но код вот:
Код:
var section_names,section:Tstringlist;
i,j:integer;
infl:Tinifile;
begin
infl:=Tinifile.Create('c:\1.ini'); //путь к файлу
section_names:=TStringList.create;
section:=TStringList.create;
treeview1.Items.Clear; //ТрииВиев
infl.ReadSections(section_names);
for I := 0 to section_names.Count - 1 do
begin
treeview1.Items.AddChild(nil,section_names[i]);
infl.ReadSection(section_names[i],section);
for j := 0 to section.Count - 1 do
begin
if j=0 then
treeview1.Items.AddChild(treeview1.Items[treeview1.Items.count-1],section[j])
else
treeview1.Items.Add(treeview1.Items[treeview1.Items.count-1],section[j]);
end;
end;
infl.Free;
section_names.Free;
section.Free;
end;