我現在有四個節點,案件名,設備名,組部件名,零件名.他們的關係是;案件裡面包含很多設備,設備裡面包含很多組部件,組部件裡面包含很多的零件.我想鼠標左鍵點了'案件名'之後,所有的'設備名'都能顯示為子節點,同樣的道理,再用鼠標左鍵點顯示出來的設備名能將所有的'組部件名'顯示為子節點.請問如何實現,希望能給出代碼例子
解决方案 »
- 在delphi中,如何将colordialog1.color的color值表示成十六进制字符,即转换成十六进制表示的字符串型?如比:黄色,表示为:00ffff.
- ShellExecute使用中的一个问题!
- 请教
- 释放窗体就会出错。
- 请问几个关于ADO+Access+Excel的问题(内详)。
- 如何取出一个字符串中任意一个字符的ASCII码,
- 请教高手!(高分求救!!!)
- 一表格有三个字段都同时设为主键,怎样才能保证,这三列中的每一列的值都不重复?
- 请教主从表结构的定义。(没有几分了,呜呜。。。。)
- XE5调用DLL问题
- 怎样实现好像ACDSEE那样的缩略图,包括jpg,bmp,avi,mp3等文件?有分给(100)
- 关于DBGrid的使用问题!
根据该父节点显示子节点,应该不难。
下次不要用繁体,看了有点困难。
var
TreeNodeProvince,TreeNodeCity : TTreeNode;
NodeDataRecPtr : PNodeDataRec;
RegAdmiCode,Temp : String;
begin
TreeView1.Items.Clear;
//TreeNodeProvince := nil;
//TreeNodeCity := nil;
with Query1 do
begin
Close;
SQL.Clear;
SQL.Text := 'select * from Admipartition order by ADMIPARTITIONNO asc';
try
Open;
except
Close;
Exit;
end;
//----^ if not (bof and eof) then
begin
First;
while Not eof do
begin
Temp := fieldbyname('AdmipartitionNo').AsString; if Copy(fieldbyname('AdmipartitionNo').AsString,3,4) = '0000' then
begin
New(NodeDataRecPtr);
NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNO').AsString;
TreeNodeProvince := TreeView1.Items.AddObject(nil,FieldByName('ADMIPARTITIONNAME').AsString +
'' + FieldByName('ADMIPARTITIONNO').AsString,NodeDataRecPtr); // TreeNodeProvince := TreeView1.Items.Add(nil,FieldByName('ADMIPARTITIONNAME').AsString
// );
end
else
if Copy(FieldByName('ADMIPARTITIONNO').AsString,5,2) = '00' then
begin
New(NodeDataRecPtr);
NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNO').AsString;
TreeNodeCity := TreeView1.Items.AddChildObject(TreeNodeProvince,FieldByName('ADMIPARTITIONNAME').AsString,NodeDataRecPtr);
end
else
begin
New(NodeDataRecPtr);
NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNo').AsString;
TreeView1.Items.AddChildObject(TreeNodeCity,FieldByName('ADMIPARTITIONNAME').AsString,NodeDataRecPtr); end;
Next;
end;
end;
end;
TreeView1.SetFocus;
TreeView1Click(Self);
end;