Componentes.Terceros.DevExp.../official/x.38/ExpressDBTree Suite/Demos/Delphi/TreeEdit/main.pas
2008-08-27 11:56:15 +00:00

77 lines
2.1 KiB
ObjectPascal

unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DB, Grids, DBGrids, DBTables, ExtCtrls, ComCtrls, StdCtrls,
DBCtrls, Buttons, ShellAPI, dxdbtrel;
type
TFMain = class(TForm)
Panel1: TPanel;
Table1: TTable;
Panel2: TPanel;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
DBTreeViewEdit1: TdxDBTreeViewEdit;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
Label1: TLabel;
procedure DBTreeViewEdit1CloseUp(Sender: TObject; Accept: Boolean);
procedure FormCreate(Sender: TObject);
end;
var
FMain: TFMain;
implementation
{$R *.DFM}
{Fill TreeNodes}
procedure TFMain.DBTreeViewEdit1CloseUp(Sender: TObject; Accept: Boolean);
Var
tr : TTreeNode;
begin
tr := DBTreeViewEdit1.Selected;
if(Accept) then begin
Table1.FindField('state').AsString := '';
while (tr <> Nil) And (tr.Parent <> Nil) do begin
tr := tr.Parent;
if(tr.Level = 1) then
Table1.FindField('state').AsString := tr.Text;
if(tr.Level = 0) then
Table1.FindField('country').AsString := tr.Text;
end;
end;
end;
procedure TFMain.FormCreate(Sender: TObject);
var
tr, tr1 : TTreeNode;
begin
Table1.DisableControls;
DBTreeViewEdit1.Items.Clear;
while Not Table1.EOF do begin
tr := DBTreeViewEdit1.GetTreeNodeByText(Nil, Table1.FindField('country').AsString, False);
if(tr = Nil) then
tr := DBTreeViewEdit1.Items.Insert(Nil,Table1.FindField('country').AsString);
if(Table1.FindField('state').AsString <> '') then begin
tr1 := DBTreeViewEdit1.GetTreeNodeByText(tr, Table1.FindField('state').AsString, False);
if(tr1 = Nil) then
tr1 := DBTreeViewEdit1.Items.AddChild(tr,Table1.FindField('state').AsString);
tr := tr1;
end;
tr1 := DBTreeViewEdit1.GetTreeNodeByText(tr, Table1.FindField('city').AsString, False);
if(tr1 = Nil) then
DBTreeViewEdit1.Items.AddChild(tr,Table1.FindField('city').AsString);
Table1.Next;
end;
Table1.First;
Table1.EnableControls;
DBTreeViewEdit1.TreeViewSortType := stText;
end;
end.