Подскажите как реализовать задумку
Имеется таблица (БД) TTree.db, состоит из 3 полей: ID class - key (integer), Name (alpha), Papa (integer). Имеет вид, как на рис. 1.
Мне требуется: чтобы по данной таблице строилось дерево (как в проводнике в Windows) - рис. 2 - то, что мне необходимо, но это вручную прорисованно. Что для этого нужно? Предоставляю текст, который есть сейчас:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, ExtCtrls, ImgList, ComCtrls,
ToolWin, StdCtrls, Buttons;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Table1: TTable;
TreeView1: TTreeView;
ImageList1: TImageList;
Splitter1: TSplitter;
Splitter2: TSplitter;
ToolBar1: TToolBar;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
SpeedButton1: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SpeedButton1Click(Sender: TObject); // кнопка выхода из программы
begin
Close;
end;
procedure TForm1.BitBtn1Click(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;
procedure TForm1.BitBtn2Click(Sender: TObject); // для кнопки "Добавить подпапку"
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;
end;
procedure TForm1.BitBtn4Click(Sender: TObject); // для кнопки "Редактировать заголовок"
var
CaptionStr:String;
begin
CaptionStr:='';
if not InputQuery('Ввод имени',
'Введите заголовок элемента',CaptionStr) then exit;
TreeView1.Selected.Text:=CaptionStr;
end;
procedure TForm1.BitBtn3Click(Sender: TObject); // процедура для кнопки "Удалить"
begin
if TreeView1.Selected<>nil then
TreeView1.Items.Delete(TreeView1.Selected);
end;
end.