国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

TreeView使用筆記

2024-07-21 02:29:53
字體:
來源:轉載
供稿:網友
  treeview由節點構成,建樹通過對treeview.items屬性進行操作。items是一個ttreenodes對象,這是一個ttreenode集。
  
  
  一、針對ttreenodes,也就是 treeview.items,有這些屬性:
  1、count,節點個數。
  2、item[index] ,通過index得到節點。
  
  
  二、針對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事件。該事件中,將傳遞node,即當前被選中的節點。
  
  
  當修改一個節點的text時,會觸發ttreeview.onedit事件。
  
  
  
  六、將節點和節點所對應的數據聯系起來
  對于每個ttreenode,有個data屬性,可以存放一個指針。我們可以利用這個域來存放與節點對應的自己的數據。
  1.我們先定義一個數據結構,作為記錄我們要記錄的數據。如:
  type
  pmydata=^tmydata;
  tmydata=record
  sfname:string;
  slname:string;
  nindex:integer;
  end;
  
  
  2.然后,創建數時,將節點和節點數據聯系起來:
  procedure tform1.button1click(sender: tobject);
  var
  myshuju: pmydata
  cur_node:ttreenode;
  begin
  new(myrecptr); //記住,一定要先分配內存。有幾個節點,就要分配幾次內存。
  myshuju^.fname:=edit1.text;
  myshuju^.lname := edit2.text;
  treeviewindex := strtoint(edit3.text);
  with treeview1 do
  begin
  cur_node:=items.addfirst(nil,'first');
  cur_node.data:=myshuju;
  end;
  end;
  
  
  3.當我們選中一個節點時,就可以使用我們的數據了。
  procedure tform1.treeview1change(sender:tobject;node:ttreenode);
  begin
  if node.data<>nil then
  self.label1.caption:=pmydata(node.data)^.fname+pmydata(node.data)^.lname
  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 中指向的內存空間。
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 元朗区| 民和| 察雅县| 沙洋县| 普洱| 左权县| 竹山县| 九龙城区| 惠安县| 夏邑县| 彭阳县| 绍兴县| 翁牛特旗| 蒲江县| 蒙城县| 始兴县| 灵石县| 陇南市| 黔南| 宾川县| 蕉岭县| 太原市| 大厂| 鹤峰县| 卢氏县| 新田县| 白山市| 天台县| 石景山区| 饶平县| 宜春市| 大石桥市| 绿春县| 酒泉市| 定边县| 治多县| 武汉市| 承德市| 松滋市| 巫山县| 唐山市|