git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@26 05c56307-c608-d34a-929d-697000501d7a
186 lines
4.9 KiB
ObjectPascal
186 lines
4.9 KiB
ObjectPascal
unit main;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, DBTables, DB, ComCtrls, Mask, DBCtrls, Grids,
|
|
DBGrids, ExtCtrls, Buttons, ShellAPI, dxtree, dxdbtree;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
Table1: TTable;
|
|
Table1id: TIntegerField;
|
|
Table1parent: TIntegerField;
|
|
Table1name: TStringField;
|
|
DBTreeView1: TdxDBTreeView;
|
|
DataSource1: TDataSource;
|
|
Panel1: TPanel;
|
|
Button1: TButton;
|
|
BitBtnAdd: TBitBtn;
|
|
BitBtnAddChild: TBitBtn;
|
|
BitBtnEdit: TBitBtn;
|
|
BitBtnDel: TBitBtn;
|
|
BitBtn2: TBitBtn;
|
|
Button2: TButton;
|
|
Button3: TButton;
|
|
CheckBox1: TCheckBox;
|
|
CheckBox2: TCheckBox;
|
|
Table1buffer: TStringField;
|
|
CheckBox3: TCheckBox;
|
|
DBNavigator1: TDBNavigator;
|
|
DBEdit1: TDBEdit;
|
|
DBEdit2: TDBEdit;
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure BitBtnAddClick(Sender: TObject);
|
|
procedure BitBtnAddChildClick(Sender: TObject);
|
|
procedure BitBtnEditClick(Sender: TObject);
|
|
procedure BitBtnDelClick(Sender: TObject);
|
|
procedure BitBtn2Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure Button3Click(Sender: TObject);
|
|
procedure CheckBox1Click(Sender: TObject);
|
|
procedure CheckBox2Click(Sender: TObject);
|
|
procedure DBTreeView1CreateNewKeyValue(Sender: TObject;
|
|
var NewKeyValue: Variant);
|
|
procedure CheckBox3Click(Sender: TObject);
|
|
private
|
|
MaxValue : Integer;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
uses dbview;
|
|
{$R *.DFM}
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
var
|
|
Form2: TForm2;
|
|
begin
|
|
Form2 := TForm2.Create(Nil);
|
|
Form2.DBGrid1.DataSource := DataSource1;
|
|
Form2.ShowModal;
|
|
Form2.Free;
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
Var
|
|
i, j, k, l, id, parent : Integer;
|
|
begin
|
|
Table1.CreateTable;
|
|
Table1.AddIndex('id', 'id', [ixPrimary, ixUnique]);
|
|
Table1.AddIndex('parent', 'parent', []);
|
|
Table1.Open;
|
|
|
|
for i := 0 to 9 do
|
|
for j := 0 to 9 do
|
|
for k := 0 to 9 do
|
|
for l := 0 to 9 do begin
|
|
with Table1 do begin
|
|
Append;
|
|
id := l + k*10 + j* 100 + i * 1000;
|
|
parent := k + j* 10 + i * 100 - 1;
|
|
FindField('id').AsInteger := id;
|
|
FindField('parent').AsInteger := parent;
|
|
FindField('Name').AsString := 'TreeNode item No ' + IntToStr(id) + ' parent No ' + IntToStr(Parent);
|
|
FindField('Buffer').AsString := 'No ' + IntToStr(id);
|
|
Post;
|
|
end;
|
|
end;
|
|
|
|
Table1.IndexFieldNames := 'parent';
|
|
Table1.First;
|
|
MaxValue := 10000;
|
|
end;
|
|
|
|
procedure TForm1.FormDestroy(Sender: TObject);
|
|
begin
|
|
Table1.Close;
|
|
Table1.DeleteTable;
|
|
end;
|
|
|
|
procedure TForm1.BitBtnAddClick(Sender: TObject);
|
|
begin
|
|
if (DBTreeView1.Selected <> Nil) then
|
|
DBTreeView1.Items.Add(DBTreeView1.Selected, 'New Item');
|
|
end;
|
|
|
|
procedure TForm1.BitBtnAddChildClick(Sender: TObject);
|
|
begin
|
|
if (DBTreeView1.Selected <> Nil) then
|
|
DBTreeView1.Items.AddChild(DBTreeView1.Selected,'Child of ' + DBTreeView1.Selected.Text);
|
|
end;
|
|
|
|
procedure TForm1.BitBtnEditClick(Sender: TObject);
|
|
begin
|
|
if (DBTreeView1.Selected <> Nil) then
|
|
DBTreeView1.Selected.EditText;
|
|
end;
|
|
|
|
procedure TForm1.BitBtnDelClick(Sender: TObject);
|
|
begin
|
|
if (DBTreeView1.Selected <> Nil) then
|
|
DBTreeView1.Selected.Delete;
|
|
end;
|
|
|
|
procedure TForm1.BitBtn2Click(Sender: TObject);
|
|
var
|
|
tr : TTreeNode;
|
|
begin
|
|
if (DBTreeView1.Selected <> Nil) then begin
|
|
tr := DBTreeView1.Selected.Parent;
|
|
if(tr <> nil) then begin
|
|
if(tr.parent <> nil) then
|
|
DBTreeView1.Selected.MoveTo(tr.Parent, naAddChild)
|
|
else DBTreeView1.Selected.MoveTo(Nil, naAdd);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
begin
|
|
DBTreeView1.DataSource := DataSource1;
|
|
end;
|
|
|
|
procedure TForm1.Button3Click(Sender: TObject);
|
|
begin
|
|
DBTreeView1.DataSource := Nil;
|
|
end;
|
|
|
|
procedure TForm1.CheckBox1Click(Sender: TObject);
|
|
begin
|
|
if(CheckBox1.Checked) then
|
|
DBTreeView1.Options := DBTreeView1.Options + [trCanDBNavigate]
|
|
else DBTreeView1.Options := DBTreeView1.Options - [trCanDBNavigate];
|
|
end;
|
|
|
|
procedure TForm1.CheckBox2Click(Sender: TObject);
|
|
begin
|
|
if(CheckBox2.Checked) then
|
|
DBTreeView1.Options := DBTreeView1.Options + [trCheckHasChildren]
|
|
else DBTreeView1.Options := DBTreeView1.Options - [trCheckHasChildren];
|
|
end;
|
|
|
|
procedure TForm1.DBTreeView1CreateNewKeyValue(Sender: TObject;
|
|
var NewKeyValue: Variant);
|
|
begin
|
|
NewKeyValue := MaxValue;
|
|
Inc(MaxValue);
|
|
end;
|
|
|
|
procedure TForm1.CheckBox3Click(Sender: TObject);
|
|
begin
|
|
if(CheckBox3.Checked) then
|
|
DBTreeView1.Options := DBTreeView1.Options + [trSmartRecordCopy]
|
|
else DBTreeView1.Options := DBTreeView1.Options - [trSmartRecordCopy];
|
|
end;
|
|
|
|
end.
|