Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2014, 15:45   #1
Xme1ez
Пользователь
 
Регистрация: 05.06.2012
Сообщений: 12
По умолчанию Приведение "дерева" Treeview к виду html списка.

Здравствуйте, необходимо привести "дерево" Treeview к виду html списка.
Использую цикл обхода каждого элемента и проверяю условия на наличие подузлов и уровни.
Код:
function TForm1.rekurs(index: integer):integer;
begin
    memo3.Lines.Add('<li>');
    memo3.Lines.Add('текст');
    memo3.Lines.Add('</li>');
end;

procedure TForm1.Button7Click(Sender: TObject);
var
  j,b:integer;
begin
j:=0;
   memo3.Lines.Add('<ol>');
    for i := 0 to TreeView1.Items.Count-1 do
      begin
      if (TreeView1.Items.Item[i].HasChildren=false) and (TreeView1.Items.Item[i].Level=j) then
      begin
        rekurs(i);
        j:=TreeView1.Items.Item[i].Level;
      end;
      if TreeView1.Items.Item[i].HasChildren=true then
      begin
        rekurs(i);
      //  memo3.Lines.Add('</ul>');
        memo3.Lines.Add('<ul>');
        j:=TreeView1.Items.Item[i].Level+1;
      end;
      if (TreeView1.Items.Item[i].HasChildren=False) and (TreeView1.Items.Item[i].Level<j) then
      begin
      for b:=j downto TreeView1.Items.Item[i].Level+1 do
      begin
        memo3.Lines.Add('</ul>');
      end;
        rekurs(i);
      end;
      end;
      memo3.Lines.Add('</ol>');
end;
Дерево формируется не правильно, т.к. в 3 условии я уровень уменьшаю и закрываю тег, для тех узлов у которых нет потомков, но если потомки у узла есть, условие не срабатывает.
Помогите исправить.
Xme1ez вне форума Ответить с цитированием
Старый 03.04.2014, 17:04   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

код выбросить, написать рекурсивный обход
eval вне форума Ответить с цитированием
Старый 03.04.2014, 17:17   #3
Xme1ez
Пользователь
 
Регистрация: 05.06.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
код выбросить, написать рекурсивный обход
помоги, если не сложно, с кодом.
Xme1ez вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Сортировка "методом упорядоченного дерева". vedro-compota Общие вопросы Delphi 1 19.05.2010 17:25
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04