給 treeview 加上覆選框

2021-06-20 08:23:15 字數 2685 閱讀 7300

unit

unit1;

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, comctrls, stdctrls;

type

tform1 =

class

(tform)

treeview1: ttreeview;

button1: tbutton;

button2: tbutton;

button3: tbutton;

procedure

formcreate(sender: tobject);

procedure

button1click(sender: tobject);

procedure

button2click(sender: tobject);

procedure

button3click(sender: tobject);

end;var

form1: tform1;

implementation

uses

commctrl;

//讓 treeview 帶有核取方塊

procedure

tform1.formcreate(sender: tobject);

var  h: hwnd;

begin

h := treeview1.handle;

setwindowlong(h, gwl_style, getwindowlong(h, gwl_style)

or tvs_checkboxes);

with

treeview1

do 

begin

align := alleft;

items.add(

nil,

'aaa'

);    items.add(

nil,

'bbb'

);    items.add(

nil,

'ccc'

);    items.addchild(items[

2],

'111'

);    items.addchild(items[

2],

'222'

);    items.addchild(items[

2],

'333'

); 

end;

end;

//列舉帶有核取方塊的項

procedure

tform1.button1click(sender: tobject);

var  node: ttreenode;

tvi: ttvitem;

begin

fornode

in treeview1.items

do 

begin

tvi.mask := tvif_state;

tvi.hitem := node.itemid;

treeview_getitem(treeview1.handle, tvi);

if tvi.state

and

$2000

= $2000

then

showmessage(node.text);

end;end

;//取消所有選中(這是後來補充的, 所以效果圖上沒有)

procedure

tform1.button2click(sender: tobject);

var  node: ttreenode;

tvi: ttvitem;

begin

fornode

in treeview1.items

do 

begin

tvi.mask := tvif_state;

tvi.hitem := node.itemid;

tvi.statemask := tvis_stateimagemask;

tvi.state :=

$2000

shr 1

;    treeview_setitem(treeview1.handle, tvi);

end;end

;//選中所有(這是後來補充的, 所以效果圖上沒有)

procedure

tform1.button3click(sender: tobject);

var  node: ttreenode;

tvi: ttvitem;

begin

fornode

in treeview1.items

do 

begin

tvi.mask := tvif_state;

tvi.hitem := node.itemid;

tvi.statemask := tvis_stateimagemask;

tvi.state :=

$2000

;    treeview_setitem(treeview1.handle, tvi);

end;end

;end

.

關於treeview控制項核取方塊

js吧。給你 我實現了的。沒什麼問題。記得在page load時間寫 this.treeview1.attributes.add onclick checkevent jscript code 獲取元素指定tagname的父元素 function public getparentbytagname ...

給數字加上註解

注釋 命名清晰 簡單,單獨的變數使用,例如 變數定義 int a 1 判斷 if a 1 這些情況下通常會利用巨集定義來代替這些幻數 魔數,例如 定義 define max 1 使用 a max if a max 陣列使用,例如 gui程式設計需要定義5個按鍵,class,pop,定義 button...

給postmessage加上callback方法

postmessage雙向通訊中,是不能使用 函式的。window.postmessage 這樣是不行的,js會提示function不會被轉殖。我猜啊因為postmessage是通過dom通訊,js物件會被json化 也就是說不能傳遞方法。不過,話說回來,有什麼不能的呢,大不了,把function ...