u_node.~pas

来自「这是一个TreeView的简单例子,希望对新手有点帮助」· ~PAS 代码 · 共 130 行

~PAS
130
字号
unit U_Node;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, ComCtrls, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    treeclass: TTreeView;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    Timer1: TTimer;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Timer1Timer(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure treeclassClick(Sender: TObject);
  private
    { Private declarations }
  public
     procedure LoadFirstNode();
     procedure LoadSeNode();
     procedure getbjbh(strbjm:string);
   { Public declarations }
  end;

var
  Form1: TForm1;
  NoFShow:boolean;
implementation

{$R *.dfm}

procedure TForm1.LoadFirstNode();  //导入第一节点的数据
 var
 tmptree:TTreeNode;
 strsql:string;
begin
  try
  ADOQuery1.sql.clear;
    ADOQuery1.Active :=false;
    strsql:='select * from txbb ';
    ADOQuery1.sql.add(strsql);
    ADOQuery1.Active :=true;
    ADOQuery1.First;
    treeclass.Items.BeginUpdate;
  while not ADOQuery1.Eof do
  begin
    tmptree:=treeclass.Items.Add(treeclass.Selected,ADOQuery1.FieldValues['cxbb_bbm']);
    tmptree.ImageIndex:=0;
    ADOQuery1.Next;
  end;
   finally
    treeclass.Items.EndUpdate ;
    ADOQuery1.Active:=false;
   end;
end;

 procedure TForm1.LoadSeNode(); //导入第二节点的数据
     var
     strclass:string;
     tmptree:TTreeNode;
     k:integer;
     j:integer;
     strsql:string;
    begin
    j:=treeclass.Items.Count -1;
    treeclass.Items.BeginUpdate;
    for k:=j downto 0 do
    begin
    strclass:=trim(treeclass.Items[k].Text) ;
    ADOQuery1.sql.clear;
    ADOQuery1.Active :=false;
    strsql:='select * from tbjb where cbjb_xb='''+strclass+'''';
    ADOQuery1.sql.add(strsql);
    ADOQuery1.Active :=true;
    ADOQuery1.First;

  while not ADOQuery1.Eof do
  begin
   tmptree:= treeclass.Items.AddChild(treeclass.Items[k],ADOQuery1.FieldValues['cbjb_bjm']);
   tmptree.ImageIndex:=1;
   ADOQuery1.Next;
   end;
   ADOQuery1.Active:=false;
    end;
    treeclass.Items.endUpdate;
 end;


procedure TForm1.getbjbh(strbjm:string);
 begin
  try
    adoquery1.SQL.Clear ;
    adoquery1.Close;
    adoquery1.SQL.Add('select cbjb_bjbh from tbjb where cbjb_bjm='''+strbjm+'''');
    adoquery1.Open;
    edit2.text:=ADOQuery1.FieldValues['cbjb_bjbh'];
    except
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   LoadFirstNode();
   LoadSeNode();
   timer1.Enabled :=false;
   timer1.Free;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
 if not nofshow then
    timer1.Enabled :=true;
    nofshow:=true;
end;

procedure TForm1.treeclassClick(Sender: TObject);
begin
  if treeclass.Selected.Parent = nil then
    begin
      exit;   //此处Exit控制取第二级节点,如去掉则会出错.
     end;
   edit1.Text :=treeclass.Selected.Text;
   getbjbh(edit1.Text); //编号函数取值
end;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?