Учебная работа. Лабораторная работа: Создание treeview в Delphi

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (5 оценок, среднее: 4,80 из 5)
Загрузка...
Контрольные рефераты

Учебная работа. Лабораторная работа: Создание treeview в Delphi

Форма:

Листинг

программки

:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls, XPMan, SRColBtn, SRGrad, IniList, ImgList;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Memo1: TMemo;

TreeView1: TTreeView;

XPManifest1: TXPManifest;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button6: TButton;

Button10: TButton;

SRGradient1: TSRGradient;

ImageList1: TImageList;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure TreeView1Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

f:TextFile; s,c:String; i:integer;

implementation

uses Unit2;

{$R *.dfm}

//клавиша «Добавить элемент»

procedure TForm1.Button1Click(Sender: TObject);

var captionStr:string;

NewNode:TTreeNode;

Begin

//обнуляем строчку, которая будет употребляться для хранения имени грядущего элемента //дерева

CaptionStr:=»;

//выводим на экран окно ввода. Если окно было закрыто не клавишей
OK, то происходит //выход из процедуры

if not InputQuery(‘Добавить элемент’, ‘Введите заголовок элемента’, CaptionStr) then exit;

//добавляем новейший элемент в наше дерево

NewNode:=Treeview1.Items.Add(Treeview1.Selected, CaptionStr);

//если компонент не является верхним в дереве, то изменяем
ImageIndex //сделанного нами элемента на 1 (по дефлоту это

if newnode.Parent<>nil then newnode.ImageIndex:=1;

end;

//клавиша
«Удалить
»

procedure TForm1.Button2Click(Sender: TObject);

begin

//проверяю есть ли выделенный элемент в дереве

if treeview1.Selected<>nil then

begin

//если да, то выводим на экран сообщение

if MessageDlg(‘Вы вправду желаете удалить запись?’, mtWarning,[mbYes,mbNo],0)=mrYes then

//удаляем элемент дерева

treeview1.items.delete(treeview1.selected);

end;

//очищаем
memo1.

memo1.Text:=»;

end;

//клавиша «Выход»

procedure TForm1.Button3Click(Sender: TObject);

begin

//выход из программки

close;

end;

//клавиша «Сохранить в файл»

procedure TForm1.Button4Click(Sender: TObject);

begin

//сохраняем конфигурации в файл
tree.
dat

TreeView1.SaveToFile(ExtractFilePath(Application.ExeName)+’tree.dat’);

end;

//клавиша «Загрузить из файла»

procedure TForm1.Button5Click(Sender: TObject);

begin

//если файл с обозначенным именованием существует, то загружаем его

if FileExists(ExtractFilePath(Application.ExeName)+’tree.dat’) then

TreeView1.LoadFromFile(ExtractFilePath(Application.ExeName)+’tree.dat’);

end;

//клавиша «Поменять заголовок»

procedure TForm1.Button6Click(Sender: TObject);

var captionStr:string;

begin

CaptionStr:=»;

if not InputQuery(‘Изменение заголовка’, ‘Введите заголовок элемента’, CaptionStr) then exit;

//чтоб поменять имя нужно поменять свойство
Text для выделенного элемента

treeview1.Selected.Text:=CaptionStr;

end;

//клавиша «О программке»

procedure TForm1.Button7Click(Sender: TObject);

begin

//выводим новое окно с сообщением о создателе программки

ShowMessage(‘Программку выполнила студентка гр. ВТиПО-42р.’+#13+’Ахметова Индира’+#13+’2010 год’);

end;

//клавиша «Добавить подэлемент»

//тут код фактически таковой же, что и для клавиши «Добавить элемент»

procedure TForm1.Button8Click(Sender: TObject);

var captionStr:string;

NewNode:TTreeNode;

begin

CaptionStr:=»;

if not InputQuery(‘Добавить подэлемент’, ‘Введите заголовок подэлемента’, CaptionStr) then exit;

//разница только в том, что при добавлении новейшего элемента мы используем способ //
AddChild,
т.е. добавляем дочерний элемент

NewNode:=Treeview1.Items.AddChild(Treeview1.Selected, CaptionStr);

if newnode.Parent<>nil then newnode.ImageIndex:=1;

end;

//при закрытии программки создадим возможность сохранения данных дерева

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

treeview1.SaveToFile(ExtractFilePath(Application.ExeName)+’tree.dat’);

end;

//при открытии программки создадим возможность загрузки данных из дерева

procedure TForm1.FormShow(Sender: TObject);

begin

if FileExists(ExtractFilePath(Application.ExeName)+’tree.dat’) then

TreeView1.LoadFromFile(ExtractFilePath(Application.ExeName)+’tree.dat’);

end;

//при нажатии на элемент дерева

procedure TForm1.TreeView1Click(Sender: TObject);

begin

memo1.Clear;

//если файл существует, то данные добавляются в файл

if FileExists(IntToStr(TreeView1.Selected.AbsoluteIndex)) then

begin

AssignFile(f,inttostr(treeview1.Selected.AbsoluteIndex));

//открыть файл для чтения

reset(f);

while not EOF(f) do

Begin

//прочесть строчку из файла

readln (f,s);

memo1.Lines.Add(s)end;

closefile(f) end else

//по другому, если файл не существует, то создаем новейший

begin

memo1.Clear;

AssignFile(f,IntToStr(TreeView1.Selected.AbsoluteIndex));

Rewrite(f);

reset(f);

while not EOF(f) do

begin

readln (f,s);

memo1.Lines.Add(s)end ;

closefile(f) end;end;

//клавиша «Добавить описание»

procedure TForm1.Button9Click(Sender: TObject);

begin

memo1.SetFocus;

//в
memo можно редактировать данные (информацию)

Memo1.ReadOnly:=false;

end;

//клавиша «Сохранить описание»

//сохраняем введенные в
memoданные (информацию) в файл
tree.
dat

procedure TForm1.Button10Click(Sender: TObject);

begin

AssignFile(f,inttostr(treeview1.Selected.AbsoluteIndex));

rewrite(f);

for i:=0 to memo1.Lines.Count do

writeln(f, memo1.lines[i]); //записываем текст в него из МЕМО

closefile(f); //и закрываем

TreeView1.SaveToFile(‘tree.dat’);

//
memo доступен лишь для чтения

Memo1.ReadOnly:=true;

end;

end.

]]>