DataModule是一个数据库控件存放的模块是不是?
DataModule存放了控件后是不是有一个固定的模式使用,怎么使用?例子:
DataModule放了TADOConnection,ConnectionString已经填写了好了,
在另外一个窗体调用它又不行,一定要调用的那个窗体本身上放TADOConnection才行。
procedure TMainForm.FillTreeView(TreeView:TTreeView);
  procedure CreateSubTree(FNodeName: string; Node: TTreeNode = nil);
  var
    mLocalName: string;
    TreeNode: TTreeNode;
    Ads_Tmp: TADODataSet;  begin    Ads_Tmp:=TADODataSet.Create(nil);    Ads_Tmp.Connection:=dtmdl1.con1;
    Ads_Tmp.Connection:=con1;
   这里使用上面的不行,
   使用Ads_Tmp.Connection:=con1;才可以
   
   with Ads_Tmp do
    try
      Close;
      CommandText := 'Select * from Dir Where PID =' + FNodeName;
      Open;
      First;
      while not Eof do
      begin
        mLocalName := FieldbyName('ID').Asstring;
        TreeNode := TreeView.Items.AddChild(Node, FieldByName('Caption').AsString);
        CreateSubTree(mLocalName, TreeNode,); // 此处循环递归
        Next;
      end;
    finally
      ADS_Tmp.Free;
    end;
  end;
begin
  TreeView.Items.BeginUpdate;
  TreeView.Items.Clear;
  with TreeView.Items.Add(nil, '所有目录') do
  begin
    ImageIndex := 1;
    SelectedIndex := 1;
  end;
  CreateSubTree('0',TreeView.Items[0]);
  TreeView.Items.EndUpdate;
  //TreeView.Items[1].Selected := True; //展开部门end;

解决方案 »

  1.   

    implementation下面加上:
    uses
      DMUnit;//换成你的DataModule单元名。
    在Project->Options中确认该DataModule是自动创建的。事实上,DataModule不只可以放Data组件,我通常把所有不可视的、非动态创建的、被多个窗体使用的组件都放到DataModule中,比如ActionList。
      

  2.   

    DataModule就是个普通的不能在普通的东西,你把connection,query等都可以放到上面,当然其他的 也可以,其他窗体引用 DataModule的单元,就可以访问其中的组件,其实自己写各类,管理数据组件也是一样的
      

  3.   

    引用了但是还是不可用。虽然引用后可以使用,但是不停的报错。感觉这个Data完全没必要的