我是一个初学者,在用这个控件的时候遇到了一点问题请帮忙解答,怎么在程序运行的时候增加或修改子项.
解决方案 »
- delphi 导入时候找不到microsoft comm control6.0[1.1]
- 设置dbgrid的columns中的fieldname属性时,弹出ADOquery1 missing SQL property是怎么回事?
- 新手求助,存储过程问题
- 关于曲线拟和的问题,高手赐教!!!!高分了!!!
- RichEdit中现实多国文字
- 怪!为什么我的程序在98下不能运行!
- 求助:为什么ADOQry.RecordCount总是-1?
- 请问:在将Richedit中数据存入数据库时出错!
- 列位请了,哪里有flatstyle 2000或更好的新控件下载(FOR D6)??
- To:编程至尊宝 你有没有写过写到注册表中的服务程序
- 大型项目中的查询问题
- 有什么控件做报表开发效率最高
function DataSetToTreeNode(mDataSet: TDataSet;
mFieldNameParent: string; //上级ID INE_SUPERIOR_ID
mFieldNameTreeText: string; //名称 INE_NAME
mFieldNameTreeId: string; //ID INE_ID
mTreeView: TTreeView; mTreeNode: TTreeNode;
mParentText: string): Boolean;
var
vTreeNode: TTreeNode;
vFieldValues: Variant;
vFieldNames: string;
begin
Result := False;
if not Assigned(mDataSet) then Exit;
if not Assigned(mTreeView) then Exit;
if not mDataSet.Active then Exit;
vFieldNames := Format('%s;%s;%s',
[mFieldNameParent, mFieldNameTreeText, mFieldNameTreeId]);
mDataSet.Filtered := False;
if QuotedStr(mParentText) = '' Then
mDataSet.Filter := Format('Not %s Is Null',[mFieldNameParent])
else
mDataSet.Filter := Format('%s=%s', [mFieldNameParent, QuotedStr(mParentText)]);
mDataSet.Filtered := True;
if mDataSet.RecordCount = 0 then Exit;
mDataSet.First;
while not mDataSet.Eof do begin
vTreeNode := mTreeView.Items.AddChild(mTreeNode,
mDataSet.FieldByName(mFieldNameTreeText).Value);
vFieldValues := mDataSet[vFieldNames];
DataSetToTreeNode(mDataSet, mFieldNameParent, mFieldNameTreeText,
mFieldNameTreeId, mTreeView, vTreeNode,
mDataSet.FieldByName(mFieldNameTreeId).AsString);
///////Begin 恢复位置
mDataSet.Filtered := False;
mDataSet.Filter := Format('%s=%s', [mFieldNameParent, QuotedStr(mParentText)]);
mDataSet.Filtered := True;
mDataSet.Locate(vFieldNames, vFieldValues, []);
///////End 恢复位置
mDataSet.Next;
end;
Result := True;
end;procedure TForm9.FormShow(Sender: TObject);
var
LDir,DBPath,AppPath:String;
begin
with DataSource1.DataSet do
begin
TreeView1.Items.Clear;
DataSetToTreeNode(ADOTable1, 'INE_SUPERIOR_ID', 'INE_NAME', 'INE_ID',
TreeView1, nil, 'NULL');
ADOTable1.Filter := '';
end;
end;procedure TForm9.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
lStr,ID : string;
begin
lStr := Node.Text;
ADOTable1.Locate('INE_Name',lStr,[loCaseInsensitive]);
FNode := Node;
end;