Главная Учебники - Разные Лекции (разные) - часть 34
|
Форма:
Листинг
программы
:
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;
| |||||