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