皮皮网
皮皮网

【spring源码demo】【rences源码解析】【潮州源码建站】delphi treeview 源码

来源:abc建站源码 发表时间:2024-11-28 15:26:38

1.delphi关于treeview传值
2.DELPHI TreeView,源码动态添加父节点,源码子节点

delphi treeview 源码

delphi关于treeview传值

       type myint = ^string; 定义一个字符串指针

       var

        pt : myint;

       procedure Tfrom1.RzTreeView1Change(Sender: TObject; Node: TTreeNode);

       var

        s1 : string;

       begin

        s1 := myint(RzTreeView1.Selected.Data)^;取选中的值

       end;

DELPHI TreeView,源码动态添加父节点,源码子节点

       TreeView由节点构成,源码建树通过对TreeView.items属性进行操作。源码spring源码demoItems是源码一个TTreeNodes对象,这是源码一个TTreeNode集。

       一、源码针对TTreeNodes,源码也就是 TreeView.Items,有这些属性:

       1、count,源码节点个数。源码

       2、源码item[index] ,源码通过index得到节点。

       二、源码rences源码解析针对TTreeNodes,也就是 TreeView.Items,常用的添加节点的操作有:

       AddFirst添加第一个根节点。由此函数添加的节点总排在前面,除非后来又使用此函数添加了一个节点,则后添加的节点将排在前面。该函数返回新添加的节点。

       AddChildFirst添加第一个子节点,要求有父节点作为其参数。潮州源码建站返回新添加的节点。

       AddChild添加一个子节点,要求有父节点作为其参数。返回新添加的节点。

       Add添加一个兄弟节点,要求有兄弟节点作为其参数。返回新添加的黄石源码开发节点。

       三、针对TTreeNodes,也就是 TreeView.Items,常用的得到节点的操作有:

       GetFirstNode() 得到根节点。

       然后配合TTreeNode.GetNext(),就可以访问所有的节点。

       四、建树举例:

       var

        root_node,cur_node:TTreeNode;

       begin

        root_node:=AddFirst(nil,根节点1);

        cur_node:=addChildfirst(root_node,nil,根节点1_child1);

        add(cur_node,根节点1_child2);

        root_node:=Add(nil,根节点2);

        AddChildFirst(root_node,根节点2_child1);

       end;

       五、事件触发:

       当从一个节点跳到另一个节点,会触发TTreeView.OnChange事件。sobv公式源码该事件中,将传递node,即当前被选中的节点。

       当修改一个节点的text时,会触发TTreeView.onEdit事件。

       六、将节点和节点所对应的数据联系起来

       对于每个TTreeNode,有个Data属性,可以存放一个指针。我们可以利用这个域来存放与节点对应的自己的数据。

       1.先定义一个数据结构,作为记录我们要记录的数据。如:

        PMyData=^TMyData;

        TMyData=Record

        Name:string;

        Sex:String;

        Age:integer;

        end;

       2.然后,创建数时,将节点和节点数据联系起来:

       procedure TForm1.Button1Click(Sender: TObject);

       var

        RecPtr: PMyData;

       begin

        New(RecPtr); //记住,一定要先分配内存。有几个节点,就要分配几次内存。

        RecPtr^.Name:='康康';

        RecPtr^.Sex := '男';

        RecPtr^.Age := +TreeView1.Items.Count;

        TreeView1.items.AddObject(nil,'节点数据结构 '+inttostr(TreeView1.Items.Count),RecPtr);

       end;

       3.当我们选中一个节点时,就可以使用我们的数据了。

       procedure TForm1.TreeView1Change(Sender:TObject;Node:TTreeNode);

       var

        RecPtr: PMyData;

       begin

        if TreeView1.Selected=nil then Exit;

        if TreeView1.Selected.Data<>nil then begin

        RecPtr:=TreeView1.Selected.Data;

        ShowMessage(TreeView1.Selected.Text+##+'姓名:'+RecPtr.Name+##+'性别:'+RecPtr.Sex+##+'年龄:'+inttostr(RecPtr.Age));

       end;

       七、一般使用流程:

       1、添加全局变量:

        b_first:boolean; //记录是否是第一次访问节点,因为此时数据还未准备好,而一旦访问节点就会触发OnChange事件,在此事件处理函数中也许会出错。

       2、在FormCreate中,

        a、设置b_first:=true;

        b. 创建数并将节点与数据联系。

       3、在FormShow中

        设置b_first:=false;

       4.在事件OnChange中处理节点被选中事件。

       5.在Edit中处理节点被修改Text事件。

        并调用OnChange.

       6.在 TreeView.Destory中

        释放Data 中指向的内存空间。

相关栏目:娱乐

.重点关注