//這裡是建立乙個乙個類
type tcheckboxtreeview=class(ttreeview)
protected
procedure createparams(var params: tcreateparams); override;
end;
//具體只要加一句話
procedure tcheckboxtreeview.createparams(var params: tcreateparams);
begin
inherited;
params.style:=params.style or tvs_checkboxes;
end;
或者在窗體上加乙個ttreeview 控制項,然後設定
setwindowlong(treeview.handle,gwl_style,getwindowlong(treeview.handle,gwl_style) or tvs_checkboxes);
可以定義const tvs_checkboxes =$0100 或者在單元裡新增***mctrl單元
兩個函式:分別得到核取方塊狀態
function isnodechecked(node :ttreenode) :boolean;
const
tvis_checked = $2000;
vartvitem :ttvitem;
begin
tvitem.mask := tvif_state;
tvitem.hitem := node.itemid;
treeview_getitem(node.treeview.handle, tvitem);
result := (tvitem.state and tvis_checked) = tvis_checked;
end;
procedure setnodechecked(node :ttreenode; checked :boolean);
const
tvis_checked = $2000;
vartvitem :ttvitem;
begin
fillchar(tvitem, sizeof(tvitem), 0);
with tvitem do begin
hitem := node.itemid;
mask := tvif_state;
statemask := tvis_stateimagemask;
if checked then
tvitem.state :=tvis_checked
else
tvitem.state :=tvis_checked shr 1;
treeview_setitem(node.treeview.handle, tvitem);
end;
end;
窗體上新增乙個tlistbox,在按鈕裡新增**
procedure tform1.button1click(sender: tobject);
var i:integer;
begin
listbox1.clear;
for i:=0 to mytree.items.count-1 do begin
if isnodechecked(mytree.items.item[i]) then
listbox1.items.add(mytree.items.item[i].text);
end;
end;
DELPHI控制項學習之TreeView
一.如何初始化乙個treeview?弄乙個視窗,放上乙個treeview和乙個button,分別取名為tv1和btn1。如果需要 在每個節點前有個圖,請在視窗上放上乙個imagelist,取名為imagelist1,雙擊 它,加入六個圖示。還要記得記得將tv1的images屬性改為imagelist...
delphi中Treeview的使用介紹
今天重點學習了treeview的使用方法,基本的已經寫了,現在主要想說的是如何顯示資料庫的資料,今天只是做了個較簡單的例子,乙個父節點下顯示資料庫中某個field的值。如下 procedure tmainform.treeviewshow sender tobject varnode1,subnod...
在TreeView中獲得TreeCtrl指標
一般來說,在文件 視 框架中使用ctreeview類,而在基於對話方塊的程式中使用ctreectrl類,而ctreeview實際上是包裝了乙個ctreectrl物件,因此我們可以通過ctreeview gettreectrl 來得到ctreectrl的指標,然後就直接操作ctreectrl物件吧 新...