unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, bsSkinData, BusinessSkinForm, bsSkinCtrls, ImgList, ComCtrls,
  XPMenu, DB, ADODB, bsSkinBoxCtrls, StdCtrls, Mask, bsSkinGrids, bsDBGrids,
  bsMessages;type
  TForm1 = class(TForm)
    bsBusinessSkinForm1: TbsBusinessSkinForm;
    bsSkinData1: TbsSkinData;
    bsCompressedStoredSkin1: TbsCompressedStoredSkin;
    bsSkinPanel1: TbsSkinPanel;
    TreeView1: TbsSkinTreeView;
    ImageList1: TImageList;
    ADOQuery1: TADOQuery;
    ADOConnection1: TADOConnection;
    bsSkinPanel2: TbsSkinPanel;
    bsSkinLabel1: TbsSkinLabel;
    bsSkinLabel2: TbsSkinLabel;
    bsSkinLabel3: TbsSkinLabel;
    bsSkinLabel4: TbsSkinLabel;
    bsSkinLabel5: TbsSkinLabel;
    bsSkinLabel6: TbsSkinLabel;
    bsSkinLabel7: TbsSkinLabel;
    bsSkinLabel8: TbsSkinLabel;
    Edit1: TbsSkinEdit;
    Edit2: TbsSkinEdit;
    Edit3: TbsSkinEdit;
    Edit4: TbsSkinEdit;
    Edit5: TbsSkinEdit;
    Edit6: TbsSkinEdit;
    Edit7: TbsSkinEdit;
    ComboBox1: TbsSkinComboBox;
    bsSkinPanel3: TbsSkinPanel;
    Button1: TbsSkinButton;
    Button3: TbsSkinButton;
    Button2: TbsSkinButton;
    Button5: TbsSkinButton;
    Button4: TbsSkinButton;
    bsSkinPanel4: TbsSkinPanel;
    DBGrid1: TbsSkinDBGrid;
    bsSkinScrollBar1: TbsSkinScrollBar;
    DataSource1: TDataSource;
    bsSkinScrollBar2: TbsSkinScrollBar;
    Message1: TbsSkinMessage;
    bsSkinScrollBar3: TbsSkinScrollBar;
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure disorenable(flag :boolean);
    procedure DBGrid1CellClick(Column: TbsColumn);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure refresh();
    function CFNum():string;
    procedure Button5Click(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TbsColumn;
      State: TGridDrawState);
    
  private
    { Private declarations }
  public
    { Public declarations }
    he :integer;
  end;var
  Form1: TForm1;implementation{$R *.dfm}

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+getcurrentdir+
                  '\friends.mdb;Persist Security Info=False;Jet OLEDB:Database Password=hejunpeng';
    refresh();
    Button1.Enabled :=false;
    Button2.Enabled :=false;
    Button3.Enabled :=false;
    Button4.Enabled :=false;
    Button5.Enabled :=false;
    end;procedure TForm1.refresh();
    var
    node1,node2,node3:TTreeNode;
    Query ,Query2:TADOQuery;
    begin
    disorenable(false);
    TreeView1.Items.Clear ;
    node1 :=TreeView1.Items.Add(nil ,'同学录');
    node1.ImageIndex :=0;
    node1.StateIndex :=-1;
    node1.SelectedIndex:=1;Query2 :=TADOQuery.Create(self);
    Query2.Connection :=ADOConnection1;
    Query2.SQL.Clear ;Query :=TADOQuery.Create(self);
    Query.Connection :=ADOConnection1;
    Query.SQL.Clear ;
    Query.SQL.Text :='select distinct 类型 from fd';
    Query.Open ;
      while not Query.Eof do                     //添加所有的村庄为第二层子节点
      begin
        node2 :=TreeView1.Items.AddChild(node1,Query.fieldByName('类型').AsString );
        node2.ImageIndex :=0;
        node2.StateIndex :=-1;
        node2.SelectedIndex:=1;    Query2.SQL.Text :='select 姓名 from fd where 类型=:A';
        Query2.Parameters.ParamByName('A').Value :=node2.Text ;
        Query2.Open ;
        while not Query2.Eof do              //添加村庄中的所有客户为第三层子节点
        begin
        node3 :=TreeView1.Items.AddChild(node2,Query2.fieldByName('姓名').AsString );
        node3.ImageIndex :=2;
        node3.StateIndex :=-1;
        node3.SelectedIndex:=3;
        Query2.Next ;
        end;    Query.Next ;
      end;
      Query2.Close;
      Query2.Free;
      Query.Close;
      Query.Free;
    end;
      

  2.   

    disorenable(true);
    这是什么意思啊
      

  3.   

    disorenable(true);
    这句话是调用了一个叫disorenable过程
    disorenable过程有一个叫flag的boolean型的参数
    就是这么简单
      

  4.   

    程序虽长不过并没有难深的算法,所以看懂不是很难,关键是太长了,没有时间,偶看了第一部分就看不下去了。(因为偶对Dephi不懂)这应该是Dephi自动生成的你C++ Builder中的.hpp文件,主要定义了一些窗口中的元素。没有什么其它的。
      

  5.   

    这应该是Dephi自动生成的你C++ Builder中的.hpp文件,主要定义了一些窗口中的元素。没有什么其它的。==================================================不知道楼上怎么看出来是干这个的-_-!我怎么看着就是个把数据库的内容显示在窗体上……
      

  6.   

    我怎么看着就是个把数据库的内容显示在窗体上……___________________________________________>>>>>>>>>>>>>>>>>>>