各位你们好,向你们请教个问题,关于treeview控件。现在我有几个相同的子结点我要将它们全编上17位的影含代码(字符型)请问treeview中哪个属性能实现,

W

wanxin

Unregistered / Unconfirmed
GUEST, unregistred user!
各位你们好,向你们请教个问题,关于treeview控件。现在我有几个相同的子结点我要将它们全编上17位的影含代码(字符型)请问treeview中哪个属性能实现,写上代码。谢谢。(100分)<br />各位你们好,向你们请教个问题,关于treeview控件。现在我有几个相同的子结点我要将它们全编上17位的影含代码(字符型)请问treeview中哪个属性能实现,写上代码。谢谢。
 
有个data属性可以用,是个指针。
 
具体点写上代码
 
procedure TFrame4.GetClassInfo;
var intClassID, intClassLevel, intClassIndex: Integer;
sClassName: string;
pData: ^integer;
I: integer;
begin
tvProClass.Items.Clear;
with dm_Mysql do
begin
sqlMysql.Close;
sqlMysql.SQl.clear;
sqlMysql.SQL.Add('Select * from ProduceClass order By ClassLevel ,ClassIndex');
sqlMysql.open;
if sqlMysql.RecordCount <> 0 then
begin
for I := 0 to sqlMysql.RecordCount - 1 do
begin
new(pData);
intClassID := sqlMysql.fieldByname('ClassID').asinteger;
sClassName := SqlMysql.fieldByname('ClassName').asstring;
intClassLevel := sqlMysql.fieldByname('ClassLevel').asinteger;
intClassIndex := sqlMysql.fieldByname('ClassIndex').asinteger;
pData^ := intClassID;
if intClassLevel = 0 then //=0 即为顶级节点。
begin
tvProClass.Items.AddObject(GetNodeBydata(intClassIndex), sClassName, pData);
end
else
begin
tvProClass.items.AddChildObject(GetNodeByData(intClassIndex), sClassname, PData);
end;
sqlMysql.Next
end;
end;
tvProClass.FullExpand;
end;

end;

function TFrame4.GetNodeData: integer;
begin
if tvProClass.Selected <> nil then
begin
result := pinteger(tvProClass.Selected.Data)^;
end
else
begin
result := 0;
end;
end;

给分哦!
 
data可用,但不要最付佳解决方案,
如 DeleteNode 时变量释放问题
最完整的方案是重写 TreeNode 和 TreeView
 
多人接受答案了。
 
顶部