⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_node.~pas

📁 这是一个TreeView的简单例子,希望对新手有点帮助
💻 ~PAS
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -