Основная методика создания приложения

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. Самостоятельная работа