Создание treeview в Delphi

Автор работы: Пользователь скрыл имя, 14 Февраля 2011 в 16:55, лабораторная работа

Краткое описание

Программа.

Содержимое работы - 1 файл

Отчет лаб раб2 по СИИ.doc

— 84.00 Кб (Скачать файл)

Форма: 

 

Листинг программы:

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 (по умолчанию это значение 0)

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.

Информация о работе Создание treeview в Delphi