| 
| 
 | Вопрос # 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, как его готовить, с чем подавать и чем есть. Хэлпы юзал, но с английского мало чего понял........ |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |