全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2468
推到 Plurk!
推到 Facebook!

TREEVIEW加CHECKBOX遇Undeclared indentifier问题

 
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-05 02:32:10 IP:211.161.xxx.xxx 未訂閱

TREEVIEW加CHECKBOX时

procedure TForm1.FormCreate(Sender: TObject);

var

dwStyle : DWord;

begin

dwStyle := GetWindowLong(TreeView1.Handle,GWL_STYLE); //取得原來treeView Node的Style

dwStyle := dwStyle or OBM_CHECKBOXES; //加上checkbox Style

SetWindowLong(TreeView1.Handle,GWL_STYLE,dwStyle); //更新Style可以了!

end;

以上可以实现在TREEVIEW各节点前加CHECKBOX

我看了

http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=47999 的内容 里面提到

type TTreeNodeCheckState = ( csNone, csUnChecked, csChecked );

procedure TForm1.Button1Click(Sender: TObject);

const AStateText: array [TTreeNodeCheckState] of String = ( 'None', 'UnChecked', 'Checked' ); //这里提示:Undeclared indentifier 'TTreeNodeCheckState' 不知何故??

var

ANode: TTreeNode;

ATVItem: TTVItem; //这里也提示:Undeclared indentifier 'TTVItem'是不是我有什么没有加到窗体上???

AState: TTreeNodeCheckState;

begin ANode := TreeView1.Selected; if not Assigned( ANode ) then Exit; with ATVItem do begin mask := TVIF_HANDLE or TVIF_STATE; hItem := ANode.ItemId; stateMask := TVIS_STATEIMAGEMASK; end; TreeView_GetItem( TreeView1.Handle, ATVItem ); AState := TTreeNodeCheckState( ATVItem.State shr 12 ); Label1.Caption := Format( 'The Node Is "%s"', [ANode.Text] ); Label2.Caption := Format( 'Check State Is "%s"', [AStateText[AState]] ); end;

baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-05 02:45:24 IP:211.161.xxx.xxx 未訂閱
是不是要在TreeView1CustomDrawItem下写些什么???
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-09 15:43:19 IP:211.76.xxx.xxx 未訂閱

請 uses Commctrl


===================引 用 文 章===================

TREEVIEW加CHECKBOX時

procedure TForm1.FormCreate(Sender: TObject);

var

dwStyle : DWord;

begin

dwStyle := GetWindowLong(TreeView1.Handle,GWL_STYLE); //取得原來treeView Node的Style

dwStyle := dwStyle or OBM_CHECKBOXES; //加上checkbox Style

SetWindowLong(TreeView1.Handle,GWL_STYLE,dwStyle); //更新Style可以了!

end;

以上可以實現在TREEVIEW各節點前加CHECKBOX

我看了

http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=47999 的內容 裡面提到

type TTreeNodeCheckState = ( csNone, csUnChecked, csChecked );

procedure TForm1.Button1Click(Sender: TObject);

const AStateText: array [TTreeNodeCheckState] of String = ( 'None', 'UnChecked', 'Checked' ); //這裡提示:Undeclared indentifier 'TTreeNodeCheckState' 不知何故??

var

ANode: TTreeNode;

ATVItem: TTVItem; //這裡也提示:Undeclared indentifier 'TTVItem'是不是我有什麼沒有加到窗體上???

AState: TTreeNodeCheckState;

begin ANode := TreeView1.Selected; if not Assigned( ANode ) then Exit; with ATVItem do begin mask := TVIF_HANDLE or TVIF_STATE; hItem := ANode.ItemId; stateMask := TVIS_STATEIMAGEMASK; end; TreeView_GetItem( TreeView1.Handle, ATVItem ); AState := TTreeNodeCheckState( ATVItem.State shr 12 ); Label1.Caption := Format( 'The Node Is "%s"', [ANode.Text] ); Label2.Caption := Format( 'Check State Is "%s"', [AStateText[AState]] ); end;

------
將問題盡快結案也是一種禮貌!
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-08-10 18:38:26 IP:211.161.xxx.xxx 未訂閱
嘿嘿 多谢danny大大
系統時間:2024-05-17 16:24:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!