1。我在RzCheckTree中建了棵树
代码如下://只建了两级
type
PTree=record
Code:string;
Name:string;
end;
PModule=^PTree;
procedure TFrmRightSet.BuildTopTree(FatherNode:TTreeNode;ADOCon:TADOConnection);//FatherNode:±íʾҪÌí¼Ó½ÚµãµÄ¸¸Ç×½Úµã
var
P:PModule;
ADODa_tem:TADODataSet;
begin
try
ADODa_tem:=TADODataSet.Create(Application);
ADODa_tem.Connection:=ADOCon;
with ADODa_tem do
begin
Close; // where SupRiCode <> null and SupRiName <> null
CommandText:='select distinct SupRiCode,SupRiName from R_RIGHTLIST where menulevel=''2'' ';
Open;
end; while not ADODa_tem.Eof do
begin
new(p);
P.Code:=ADODa_tem.FieldByName('SupRiCode').AsString;
P.Name:=trim(ADODa_tem.FieldByName('SupRiName').AsString);
FatherNode:=RzCTree_RightList.Items.AddChildObject(RzCTree_RightList.TopItem,P.Name,P); FatherNode.ImageIndex:=1;
FatherNode.SelectedIndex:=2;
BuildTree_2(FatherNode,P.Code,ADOCon);
ADODa_tem.Next;
end;
finally
ADODa_tem.Free;
end;
end;procedure TFrmRightSet.BuildTree_2(FatherNode:TTreeNode;SupRiCode:string;ADOCon:TADOConnection);
var
P:PModule;
ADODa_tem:TADODataSet;
TreeNode:TTreeNode;
begin
try
ADODa_tem:=TADODataSet.Create(Application);
ADODa_tem.Connection:=ADOCon;
with ADODa_tem do
begin
Close; // where SupRiCode <> null and SupRiName <> null
CommandText:='select RightCode,RightName from R_RIGHTLIST where SupRiCode='''+trim(SupRiCode)+''' order by MenuPos ';
Open;
end; while not ADODa_tem.Eof do
begin
new(p);
P.Code:=ADODa_tem.FieldByName('RightCode').AsString;
P.Name:=trim(ADODa_tem.FieldByName('RightName').AsString);
TreeNode:=RzCTree_RightList.Items.AddChildObject(FatherNode,P.Name,P);
TreeNode.ImageIndex:=1;
TreeNode.SelectedIndex:=2;
ADODa_tem.Next;
end;
finally
ADODa_tem.Free;
end;
end;
问:怎么取的任意节点的code,name?2:比如我有个值Temp
我用刚才方法建的树中有个节点的name和这个temp值一样,我如何找到这个节点,并将这个节点前面的选择框钩上。
两个问题估计都只几行代码就可以解决。
对Raize控件比较熟悉的大侠帮帮我了,谢谢。
代码如下://只建了两级
type
PTree=record
Code:string;
Name:string;
end;
PModule=^PTree;
procedure TFrmRightSet.BuildTopTree(FatherNode:TTreeNode;ADOCon:TADOConnection);//FatherNode:±íʾҪÌí¼Ó½ÚµãµÄ¸¸Ç×½Úµã
var
P:PModule;
ADODa_tem:TADODataSet;
begin
try
ADODa_tem:=TADODataSet.Create(Application);
ADODa_tem.Connection:=ADOCon;
with ADODa_tem do
begin
Close; // where SupRiCode <> null and SupRiName <> null
CommandText:='select distinct SupRiCode,SupRiName from R_RIGHTLIST where menulevel=''2'' ';
Open;
end; while not ADODa_tem.Eof do
begin
new(p);
P.Code:=ADODa_tem.FieldByName('SupRiCode').AsString;
P.Name:=trim(ADODa_tem.FieldByName('SupRiName').AsString);
FatherNode:=RzCTree_RightList.Items.AddChildObject(RzCTree_RightList.TopItem,P.Name,P); FatherNode.ImageIndex:=1;
FatherNode.SelectedIndex:=2;
BuildTree_2(FatherNode,P.Code,ADOCon);
ADODa_tem.Next;
end;
finally
ADODa_tem.Free;
end;
end;procedure TFrmRightSet.BuildTree_2(FatherNode:TTreeNode;SupRiCode:string;ADOCon:TADOConnection);
var
P:PModule;
ADODa_tem:TADODataSet;
TreeNode:TTreeNode;
begin
try
ADODa_tem:=TADODataSet.Create(Application);
ADODa_tem.Connection:=ADOCon;
with ADODa_tem do
begin
Close; // where SupRiCode <> null and SupRiName <> null
CommandText:='select RightCode,RightName from R_RIGHTLIST where SupRiCode='''+trim(SupRiCode)+''' order by MenuPos ';
Open;
end; while not ADODa_tem.Eof do
begin
new(p);
P.Code:=ADODa_tem.FieldByName('RightCode').AsString;
P.Name:=trim(ADODa_tem.FieldByName('RightName').AsString);
TreeNode:=RzCTree_RightList.Items.AddChildObject(FatherNode,P.Name,P);
TreeNode.ImageIndex:=1;
TreeNode.SelectedIndex:=2;
ADODa_tem.Next;
end;
finally
ADODa_tem.Free;
end;
end;
问:怎么取的任意节点的code,name?2:比如我有个值Temp
我用刚才方法建的树中有个节点的name和这个temp值一样,我如何找到这个节点,并将这个节点前面的选择框钩上。
两个问题估计都只几行代码就可以解决。
对Raize控件比较熟悉的大侠帮帮我了,谢谢。
for i:=0 to checktree1.items.count-1 do
begin
if checktree1.items[i].text=temp then
checktree1.StateIndex=2;
end;
谢谢你哦~~````
又是你回答我的问题。
上面的问题都解决了,其实,我是在checktree1.items.count后面忘了-1
所以搞了半天没搞出来,总报错说节点错误什么的。
呵呵,以后还望多指教啊~~``````