Урок 18 - Знакомство с компонентами (часть 9/12)
В этом уроке мы продолжаем изучать вкладку Win32.
В этот раз мы будем рассматривать компонент под названием TreeView. Мы научимся добавлять, удалять, изменять и сортировать.
Этот компонент предназначен для отображения сложной иерархической структуры данных. Например в левой области проводника Windows используется этот компонент для быстрой навигации по папкам.
И так перейдём к делу, на понадобятся компоненты: 1 TTreeView, 4 TButton, 1 TLabel и TEdit. У первой Caption давайте сделаем "Добавить", у второй "Удалить",
третьей "Добавить потомка" и для четвертой "Изменить". Разместите все компоненты вот так:
Как и у ListView, у этого компонента есть собственный редактор строк. Вызовем его кликнув по свойству Items в Object Inspetor. Появилось вот такое окно:
Оно похоже на то, что использовалось в ListView, за исключением лишь одной функции, TreeView обладает функцией загрузки/сохранения текущей информации и соответственно добавилась одна кнопка "Load". Добавляем новый Item и Text у него "Программы", добавим еще один с текстом "Игры", и "Картинки", в последний добавим потомка, клик по "New SubItem" с текстом "Фото". Скомпилируем и посмотрим что получилось. Нажав на плюсик находящийся перед "Картинки", разворачивается список и в нем наш потомок, а "Картинки" это родитель.
Теперь приступим к добавлению строк. Как и в прошлом уроке нам понадобится текущий выделенный 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.
Удачи!
Встретимся в следующем уроке!
Добавил(а): 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 | |
![]() |
Добавил(а): evgen_2017 | Дата: 2017-10-26 | |
Добавил(а): _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. ужу всё перепробовал!!!
Зачем ты в каждой процедуре обьявляешь t:integer mynode:treenode. если ты обьявил уже их там где глобальные переменные,в шапке кода? и на кой хер ты присваиваешь в каждой процедуре им значения? просто делай всё так как написано в уроке,все получится.
|
<a href="https://www.venusargo.com/videos/tiktok-challenge-girl-edition/">https://www.venusargo.com/videos/tiktok-challenge-girl-edition/</a> https://www.venusargo.com/videos/mi-amiga-y-yo-super-caliente-en-el-carro-de-mi-hermanastra/
<a href="https://www.host4see.com/videos/con-una-hembrita-prepago/">https://www.host4see.com/videos/con-una-hembrita-prepago/</a> https://www.host4see.com/videos/getting-fucked-from-behind-by-dildo-with-front-camera-on-boobs/
<a href="https://www.doornight.com/cuckold-wife-sucks-bf-off/">https://www.doornight.com/cuckold-wife-sucks-bf-off/</a>
<a href="https://www.mainmovs.com/two-girls-fucked-in-forest/">https://www.mainmovs.com/two-girls-fucked-in-forest/</a>
<a href="https://www.masturbaza.com/actor/bridgette-b/">https://www.masturbaza.com/actor/bridgette-b/</a>
<a href="https://www.vulpyx.com/dilettante-beauties-suck-at-a-party/">https://www.vulpyx.com/dilettante-beauties-suck-at-a-party/</a>
[url=http://www.cheaprealairjordanshoes.com/new-jordan-shoes-for-women-c-66.html]New Jordan Shoes For Women[/url]
<a href="http://www.classicairjordanshoes.com/newest-jordan-shoes-c-34.html">Newest Jordan Shoes</a>
<a href="https://www.analibiza.com/videos/133802/the-famous-mommy-youtuber-big-boobs/">https://www.analibiza.com/videos/133802/the-famous-mommy-youtuber-big-boobs/</a>
<a href="https://milfanaliz.com/videos/33434/zero-two-facial-pov-darling-in-the-franxx/">https://milfanaliz.com/videos/33434/zero-two-facial-pov-darling-in-the-franxx/</a>
[url=http://www.cheap2019jordanshoes.com/jordan-shoes-5-c-9.html]Jordan Shoes 5[/url]
[url=http://www.originaljordanshoes.com/midnight-air-jordans-c-31.html]Midnight Air Jordans[/url]
<a href="http://www.classicairjordanshoes.com/">Air Jordan Shoes For Sale</a> [url=http://www.classicairjordanshoes.com/]Air Jordan Shoes For Sale[/url]
Now the script exists only in Russian. When the translation into other languages is completed, the number of episodes, the number of technical and scientific ideas, the number of competent specialists will expand significantly. When making a movie, you can choose the most interesting episodes and the most interesting technical ideas.
[url=http://www.g4k6b72x4b3b6my87a908dxea6x51k2ws.org/]ueiclxfheg[/url]
<a href="http://www.g4k6b72x4b3b6my87a908dxea6x51k2ws.org/">aeiclxfheg</a>
eiclxfheg http://www.g4k6b72x4b3b6my87a908dxea6x51k2ws.org/
Nike Air Jordan Shoes http://www.originalnikekdshoes.com/nike-air-jordan-shoes-c-109.html
[url=http://shop.khunjib.com/product/311/%E0%B8%8A%E0%B8%B8%E0%B8%94%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A3%E0%B8%B1%E0%B8%81%20%E0%B8%A5%E0%B8%B2%E0%B8%A2%E0%B8%81%E0%B8%A3%E0%B8%B0%E0%B8%95%E0%B9%88%E0%B8%B2%E0%B8%A2%20%E0%B8%9A%E0%B8%B1%E0%B9%8A%E0%B8%84%E0%B8%9A%E0%B8%B1%E0%B8%99%E0%B8%99%E0%B8%B5%E0%B9%88%20Set%204%20%E0%B8%8A%E0%B8%B4%E0%B9%89%E0%B8%99.html]Some trends of drug.[/url] [url=https://blog2.huayuworld.org/ottawayang/2016/09/04/moodle-insert-keyboard/#comment-547]Everything information about drugs.[/url] [url=http://culturia.nl/node/47#comment-4622]All news about meds.[/url] 10bd897
[url=http://www.originalnikerunningshoes.com/nike-air-max-90-c-127.html]Nike Air Max 90[/url]