|
Вопрос # 4 492/ вопрос открыт / |
|
Нужна помощь по RaizePack (версии не помню), хотя и в простом TTreeView я тоже с этим столкнулся. Ситуация такая: на форме присутствует TRzCheckTree (или TTreeView), подключен inifiles, нужно выполнить ReadSections и ReadStrings так, чтобы можно было добавить в список пункты по названиям секций ини-файла, а по клику на "плюсик" появлялся список "подпунктов", проименованый простыми строками из 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
...
Объяснил хреновенько, зато наглядно)) заранее благодарен.
 |
Вопрос задал: anthonysoprano (статус: Посетитель)
Вопрос отправлен: 8 августа 2010, 13:58
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: DNK
Здравствуйте, anthonysoprano!
С TRzCheckTree не работал, а со стандартным деревом могу помочь. Надо понимать, что Pascal не волшебник, а строго типизируемый язык. Если ему не нравится какой-то аргумент, значит так и задумано. Нужно одельно в цикле создавать каждую веточку. var ini: TIniFile;
sections, sl: TStringList;
i, j: integer;
node: TTreeNode;
begin
ini := TIniFile.Create('prog.ini');
sections := TStringList.Create;
sl := TStringList.Create;
try
ini.ReadSections(sections);
for i := 0 to sections.Count - 1 do begin
node := TreeView1.Items.Add(nil, sections[i]);
sl.Clear;
ini.ReadSection(sections[i], sl);
for j := 0 to sl.Count - 1 do
TreeView1.Items.AddChild(node, sl[j]);
end;
finally
sl.Free;
sections.Free;
ini.Free;
end;
end;
 |
Ответ отправил: DNK (статус: Студент)
Время отправки: 12 августа 2010, 13:33
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 9 августа 2010, 00:18; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 8 августа 2010, 14:12 [#1]:
Цитата (anthonysoprano):
идёт ругань, что, мол, дословно, несовместимы типы TTreeNode и TStringList.
Сразу видно, что ошибка в 17-й строке.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 8 августа 2010, 14:57 [#3]:
Цитата (anthonysoprano):
в 17-ой строке чего?
В 17-й строке твоей программы, которую никто не видел.
treeview.items.add(stringlist);
Это и есть строка №17.
Ну загляни ты в хэлп или, хотя бы, просмотри параметры метода TTreeNodes.Add()! Сразу поймёшь, почему компилятор ругается.
Голова у программиста - не только шапку носить. Применяй голову.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
anthonysoprano (статус: Посетитель), 9 августа 2010, 00:18 [#4]:
Я с делфи знаком давно, но с Tree-компонентами вообще не приходилось сталкиваться, поэтому хотелось бы узнать что вообще такое TTreeNode, как его готовить, с чем подавать и чем есть. Хэлпы юзал, но с английского мало чего понял........
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|