📄 tree.pas
字号:
unit tree;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Query1: TQuery;
Query2: TQuery;
Label2: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
procedure FormCreate(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
node1,node2:TTreeNode;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Query1.DatabaseName:='DBDEMOS';
Query2.DatabaseName:='DBDEMOS';
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from vendors');
Open;
end;
While not Query1.eof do //遍历Query1
begin
node2:=TreeView1.Items.add(node1,Query1.FieldByName('VendorName').AsString);//增加树节点
With Query2 do
{查找出表parts的VendorNo字段内容和表vendors的VendorNo当前字段内容相同的所有记录}
begin
Close;
SQL.clear;
SQL.add('select * from parts where VendorNo=:a');
Parambyname('a').AsInteger:=Query1.FieldByName('VendorNo').AsInteger;
Open;
end;
Query2.first;
While not Query2.eof do //遍历Query2
begin
Treeview1.items.addChildFirst(node2,Query2.fieldbyname('Description').AsString);//添加子节点
Query2.next; //记录下跳
end;
Query1.next; //记录下跳
end;
end;
procedure TForm1.TreeView1Click(Sender: TObject);
begin
If TreeView1.Selected.Level=1 then //判断节点层次
begin
With Query2 do
Begin
Close;
SQL.clear;
SQL.add('select * from parts where Description=:A');
Parambyname('A').AsString:=Treeview1.selected.text;
Open;
End;
Edit1.text:=Query2.fieldbyName('PartNo').AsString;
Edit2.text:=Query2.fieldbyName('OnHand').AsString;
Edit3.text:=Query2.fieldbyName('OnOrder').AsString;
Edit4.text:=Query2.fieldbyName('Cost').AsString;
Edit5.text:=Query2.fieldbyName('ListPrice').AsString;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -