Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 43
1

TreeView: почему при создании 3-го уровня идёт смещение записей?

09.04.2013, 20:27. Показов 887. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте, у меня небольшая проблема. Вот пытаюсь разобраться с TreeView, но при создании 3-го уровня идёт смещение записей. Вот мой код

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm2.sButton1Click(Sender: TObject);
 
var
i,j,k,l,q,w,e,t: integer;
begin
q:=0;
 
 
for i:=0 to 10 do // Первый уровень
 
begin
sTreeView1.Items.Add(nil,'1');
w:=q;
 
      for j:=0 to 10 do // Второй уровень
        begin
          sTreeView1.Items.Addchild(sTreeView1.Items.Item[q],'2');
           e:=w;
                            for k:=0 to 10 do // Третий уровень
                              begin
                                sTreeView1.Items.Addchild(sTreeView1.Items.Item[w],'3');
                                e:=e+1;
                              end;
        w:=e+1;
        end;
q:=w+1;
end;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2013, 20:27
Ответы с готовыми решениями:

Какое сообщение идет в системе при создании TaskBar-а?
Привет всем. Есть вопрос связанный с System Tray. Я написал сервис на VB с помощью NTSvc.ocx,...

Что то идет не так при создании массива объектов
Решил я потренироваться. Создал массив объектов. Но при разных "экспериментах" столкнулся с...

Почему при создании веб-страницы в FrontPage автоматически создается папка с изображениями, а при создании веб-страницы в DreamWeaver - нет?
Если я создаю веб-страницу в FrontPage и называю ее, например, page.html, то автоматически...

Почему при создании игры Lode Runner потребовалось 19 000 текстур? почему так много?
Почему при создании игры Lode Runner потребовалось 19 000 текстур? почему так много?...

8
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
09.04.2013, 20:54 2
А ты вообще в курсе что Add и AddChild - это функциональные методы ?
1
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 43
09.04.2013, 21:16  [ТС] 3
несовсем
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
09.04.2013, 21:23 4
Печально.
А ведь во встроеной справке черным по белому написано:

function Add(Node: TTreeNode; const S: string): TTreeNode;
function AddChild(Node: TTreeNode; const S: string): TTreeNode;
1
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 43
09.04.2013, 21:28  [ТС] 5
а как с их помощью сделать иерархию с 3 уровней?
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
09.04.2013, 21:42 6
Код
Level1Node := TreeView.Items.AddChild(nil, '1'); // корневой узел
Level2Node := TreeView.Items.AddChild(Level1Node, '2'); // дочерний узел корневого узла Level1Node
Level3Node := TreeView.Items.AddChild(Level2Node, '3'); // дочерний узел узла Level2Node
1
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 43
09.04.2013, 23:34  [ТС] 7
я не могу понять, как его применить, можно пример реализации кода продемонстрировать на вот таком примере:
1
-2
--3
1
-2
--3

Добавлено через 32 минуты
уточню вопрос, как мне циклом вывести в 3 уровня по 5 записей, примерно вот так:

1
-2
--3
--3
-2
--3
--3

Добавлено через 9 минут
всё спасибо, разобрался

Добавлено через 36 минут
если не сложно, можно подсказать как для каждого уровня установить картинку из imagelist
картинка 1
- картинка2 2
вот примерно так
0
geJI<|>eP
188 / 187 / 19
Регистрация: 22.07.2010
Сообщений: 735
09.04.2013, 23:59 8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k:integer;
    Level1Node,Level2Node,Level3Node :TTreeNode;
begin
  for i := 0 to 2 do begin
    Level1Node:=TreeView1.Items.AddChild(nil,IntToStr(i));
    Level1Node.ImageIndex:=0;
    for j:=0 to 2 do begin
     Level2Node:=TreeView1.Items.AddChild(Level1Node,IntToStr(j));
     Level2Node.ImageIndex:=1;
     for k:=0 to 2 do begin
      Level3Node:=TreeView1.Items.AddChild(Level2Node,IntToStr(k));
      Level3Node.ImageIndex:=2;
    end;
    end;
  end;
end;
типа что то того?
1
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 43
10.04.2013, 00:54  [ТС] 9
да спс, то что нужно)
0
10.04.2013, 00:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2013, 00:54
Помогаю со студенческими работами здесь

IDE wxDev-C++, при создании кнопки на форме она почему-то становится во весь экран, почему?
То есть ребята не смешно ни разу. Создаю форму, кидаю кнопку, ничего не предвещает плохого. Собираю...

Ошибка 26 при создании новых записей
После переноса сайта на сервер хостинга, не работает регистрация новых пользователей. Заодно не...

Почему при инкременте отсчет идет от 1, а не от 0?
день добрый, ситуация такая.чтобы разобраться с инкрементами написал код #include&lt;stdio.h&gt; int...

Дублирование записей при создании новой записи .и фильтр
Здравствуйте!!! Очень нужна помощь. Пару недель назад создавала тему... Сейчас возникла такая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru