Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 3
Всего онлайн: 3
Зарегистрировано юзеров: 5860
Комментариев на сайте: 626
Новый юзер: Craigwoult



Последние комментарии
c
s1t1n прокомментировал "Урок 9 - Экспорт .3DS модели из 3DS max 2009 в OpenGL":
Отлично.
niaz-gtn прокомментировал "Урок 71 - Работа с сжатыми файлами":
7z.dll - приложите.



Мы в соцсетях
c
Delphi
Урок 18 - Знакомство с компонентами (часть 9/12)

  В этом уроке мы продолжаем изучать вкладку Win32.
  В этот раз мы будем рассматривать компонент под названием TreeView. Мы научимся добавлять, удалять, изменять и сортировать.

   Этот компонент предназначен для отображения сложной иерархической структуры данных. Например в левой области проводника Windows используется этот компонент для быстрой навигации по папкам.

   И так перейдём к делу, на понадобятся компоненты: 1 TTreeView, 4 TButton, 1 TLabel и TEdit. У первой Caption давайте сделаем "Добавить", у второй "Удалить", третьей "Добавить потомка" и для четвертой "Изменить". Разместите все компоненты вот так:

Расположение компонентов


   Как и у ListView, у этого компонента есть собственный редактор строк. Вызовем его кликнув по свойству Items в Object Inspetor. Появилось вот такое окно:

TreeView Items Editor


   Оно похоже на то, что использовалось в ListView, за исключением лишь одной функции, TreeView обладает функцией загрузки/сохранения текущей информации и соответственно добавилась одна кнопка "Load". Добавляем новый Item и Text у него "Программы", добавим еще один с текстом "Игры", и "Картинки", в последний добавим потомка, клик по "New SubItem" с текстом "Фото". Скомпилируем и посмотрим что получилось. Нажав на плюсик находящийся перед "Картинки", разворачивается список и в нем наш потомок, а "Картинки" это родитель.

TreeView


   Теперь приступим к добавлению строк. Как и в прошлом уроке нам понадобится текущий выделенный Item. Создадим 2 глобальных переменных t:integer и MyNode:TTreesNode ну и обработчик события TreeView, OnChange:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
MyNode:=Node;
t:=Node.AbsoluteIndex;
Label1.Caption:= IntToStr(t);
end;
   Проверим... Обратите внимание, казалось бы потомок должен иметь индекс 2.1, но это не так, в TreeView в каком порядке развернуты потомки такие они имеют индексы, то есть в нашем случае потомок "Фото" имеет индекс 3. MyNode здесь нужна для того чтоб узнать какой родительский Item сейчас выделен.

   Ну а теперь можно и добавить. Вытащим TEdit, чтоб можно было задавать имя нового элемента.

   Создадим обработчик события Button1, OnClick:
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1.Items.Add(MyNode, Edit1.Text);
end;
   Ну и сразу же добавим потомка. Создадим обработчик события Button2, OnClick:
procedure TForm1.Button2Click(Sender: TObject);
begin
TreeView1.Items.AddChild(MyNode, Edit1.Text);
end;
   Научимся удалять. Создадим обработчик события Button3, OnClick:
procedure TForm1.Button3Click(Sender: TObject);
begin
TreeView1.Items.Item[t].Delete;
end;
   Изменим элемент. Создадим обработчик события Button4, OnClick:
procedure TForm1.Butto4Click(Sender: TObject);
begin
TreeView1.Items.Item[t].Text:=Edit1.Text;
end;
   Теперь мы можем полноценно редактировать содержимое компонента, но не хватает сортировки. Сортировка управляется свойством SortType, установим сортировку по алфавиту: stText

   Ну вот и все, вот что у нас получилось:

Результат


   В следующем уроке мы начнём изучение компонентов с вкладки System, первым компонентом будет TTimer.

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 28 Марта 2013
Просмотров: 13474

Урок 17 - Знакомство с компонентами (часть 8/12) Урок 19 - Знакомство с компонентами (часть 10/12)

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): pukkup74 [Новичок] Дата: 2013-11-01
Не TTreesNode,а TTreeNode




аватар Добавил(а): _Bes_ [Новичок] Дата: 2014-03-13
Здесь начиная с первой кнопки компилятор не пропускает. procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); var t:Integer; MyNode:TTreeNode; begin MyNode:=Node; t:=Node.AbsoluteIndex; Label1.Caption:=IntToStr(t); end; procedure TForm1.Button1Click(Sender: TObject); var t:Integer; MyNode:TTreeNode; begin MyNode:=Node; t:=Node.AbsoluteIndex; TreeView1.Items.Add(MyNode, Edit1.Text); end; procedure TForm1.Button3Click(Sender: TObject); var t:Integer; MyNode:TTreeNode; begin MyNode:=Node; t:=Node.AbsoluteIndex; TreeView1.Items.AddChild(MyNode, Edit1.Text); end; procedure TForm1.Button2Click(Sender: TObject); var t:Integer; MyNode:TTreeNode; begin MyNode:=Node; t:=Node.AbsoluteIndex; TreeView1.Items.Item[t].Delete; end; procedure TForm1.Button4Click(Sender: TObject); var t:Integer; MyNode:TTreeNode; begin MyNode:=Node; t:=Node.AbsoluteIndex; TreeView1.Items.Item[t].Text:=Edit1.Text; end; end. ужу всё перепробовал!!!




аватар Добавил(а): anast-96m@mail.ru [Новичок] Дата: 2015-04-25