gaowen1210
Type //节点信息
  PItemData=^_ItemData;
    _ItemData=packed record
      S:shortstring;
      i:integer;
      f:double;
      B:boolean;
      P:Pointer;
      Next:PItemData;
end;

初始化窗体 
procedure TFrm_ClientGameRecord.InitTree;
var Str:string;
    XmlNode:IXMLNode;
    i:integer;
    Node:TtreeNode;
begin
  Tree_Time.Items.Clear;
  Query_1.Connection:=Global.DM.AdoDb;
   Str:=\'select GCODE nodedata,GNAME  nodestr,1 subnodeflag \'+
      \'from T_GameDevice order by id \';
  if Global.DM.Db_Select(Str)>0 then
    LoadTreeNode(nil,Global.DM.Q_Select);
  end;

//绑定节点
procedure TFrm_ClientGameRecord.LoadTreeNode(ParNode: TTreeNode;  DataSet: TDataSet);
var i:integer;
    Node:TTreeNode;
    NodeData:PItemData;
begin
  DataSet.First;
  for i:=1 to DataSet.RecordCount do
  begin
    NodeData :=AllocMem(sizeof(NodeData^));
    NodeData^.S:=dataset.fieldbyname(\'Nodedata\').AsString ;
    Node:=Tree_Time.Items.AddChildObject(ParNode,dataset.fieldbyname(\'nodestr\').AsString,
      nodedata);
    if dataset.FieldByName(\'subnodeflag\').AsInteger =1 then
    begin
      Node.ImageIndex :=0;
      Node.SelectedIndex :=0;
      Tree_Time.Items.AddChild(node,\'\');
    end
    else
    begin
      Node.ImageIndex :=2;
      Node.SelectedIndex :=2;
    end;
    dataset.next;
  end;

end;

//得到根节点的方法
function TFrm_ClientGameRecord.GetTreeTopNode(Node: TTreeNode): TTreeNode;
begin
  if Node.Parent <>nil then
    Result:=GetTreeTopNode(Node.Parent)
  else
    Result:=Node;
end;

分类:

技术点:

相关文章: