Основная методика создания приложения
1. Создайте новый проект и добавьте на него два компонента: TreeView1 и ImageList1. В список картинок ImageList1 добавьте несколько картинок.
2. Добавьте четыре кнопки (Button):
1. Для кнопки 1 в свойстве Name укажи AddButton.
2. Для кнопки 2 в свойстве Name укажи AddChildButton.
3. Для кнопки 3 в свойстве Name укажи DelButton.
4. Для кнопки 4 в свойстве Name укажи EditButton.
В результате должна получиться следующая форма приблизительно такого вида, как показано на рисунке 26.
Рисунок 26 -. Форма будущей программы
3. Теперь нужно указать у нашего дерева в свойстве Images установленный набор картинок.
4. По нажатию кнопки «Добавить» добавляется в дерево новый элемент. Для этого напишете следующий код:
procedure TForm1.AddButtonClick(Sender: TObject);
var
CaptionStr:String;
NewNode:TTreeNode;
begin
CaptionStr := ' ';
if not InputQuery ('Ввод имени', 'Введите заголовок элемента', CaptionStr) then exit;
NewNode := TreeView1.Items.Add(TreeView1.Selected, CaptionStr);
if NewNode.Parent<>nil then NewNode.ImageIndex:=1;
end;
5. Для кнопки «Добавить элемент» создаем следующий код:
var
CaptionStr:String; NewNode:TTreeNode; begin
CaptionStr:=' ';
if not InputQuery('Ввод имени подэлемента', 'Введите заголовок подэлемента',CaptionStr) then exit;
NewNode:=TreeView1.Items.AddChild(TreeView1.Selected, CaptionStr);
if NewNode.Parent<>nil then NewNode.ImageIndex:=1;
Здесь код практически тот же, что и для кнопки «Добавить». Единственная разница в том, что при добавлении нового элемента мы используем метод AddChild. Отличие этого метода от просто Add заключается в том, что он добавляет дочерний элемент. Например, если вы выделили в списке какой-то элемент и передали его в качестве первого параметра в AddChild, то новый элемент будет как бы подчиняться выделенному. При использовании метода Add новый элемент будет находиться на одном уровне дерева с переданным в качестве первого параметра.
6. Теперь напишем код для кнопки «Добавить»:
if TreeView1.Selected<>nil then TreeView1.Items.Delete(TreeView1.Selected);
7. Для кнопки «Изменить заголовок» запишете следующий код:
procedure TTreeViewForm.EditButtonClick(Sender: TObject);
var
CaptionStr:String;
begin
CaptionStr:='';
if not InputQuery('Ввод имени', 'Введите заголовок элемента',CaptionStr) then exit;
TreeView1.Selected.Text:=CaptionStr;
end;
8. Теперь сделаем возможность сохранения и загрузки данных в наше дерево. Для этого создадим обработчик события OnClose для формы и напишем в нём следующее:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TreeView1.SaveToFile(ExtractFilePath(Application.ExeName)+'tree.dat');
end;
Запустите приложение и протестируйте его работу.
9. Теперь нужно загрузить сохранённые данные. Для этого для события OnShow напишем следующее:
Procedure Form1.FormShow(Sender: TObject);
begin
if FileExists(ExtractFilePath(Application.ExeName)+'tree.dat') then TreeView1.LoadFromFile(ExtractFilePath(Application.ExeName)+'tree.dat');
end;
Рисунок 27- Результат работы программы
10. Запустите проект. На рисунке 27 показано окно работающего приложения.
3. Самостоятельная работа