ListView元件的checkbox屬性問題 |
答題得分者是:wameng
|
linxi
一般會員 發表:17 回覆:15 積分:6 註冊:2004-08-29 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
linxi
一般會員 發表:17 回覆:15 積分:6 註冊:2004-08-29 發送簡訊給我 |
引言: 我沒有實際試過,但是我想可以在選取的時候就判斷check的狀態是true或是false,然後分別跑兩個function,你試試看吧 >>< face="Verdana, Arial, Helvetica"> 我先是設一個全局變數,然後在ListView的onMOuseDown事件裡保存當前checkbox狀態到全局變數,然後在ListView的onClick事件裡對當前狀態和onMouseDown事件代碼中保存的狀態進行對比,如果發生變化就執行預定代碼。可是我發現這種方法行不通,當onMouseDown事件發生時checkbox的狀態已經被更變了,應該是在checkbox的狀態將要改變之前就進行保存狀態的操作,請問我該怎麼辦? 發表人 - linxi 於 2004/10/12 17:39:38 |
chinghwan
一般會員 發表:1 回覆:4 積分:1 註冊:2003-07-04 發送簡訊給我 |
|
linxi
一般會員 發表:17 回覆:15 積分:6 註冊:2004-08-29 發送簡訊給我 |
引言: 妳是否只要做到checkbox了值改後所對應了動作 假如是了話就就寫在onclick裡就可以了,應該不用去記一開始了狀態才對。 if Sender is TCheckBox then begin if TCheckBox(Sender).Checked then begin ShowMessage('AA');//動作a end else begin ShowMessage('BB');//動作b end; end;chinghwan你好,看了你的代码,我觉得不失为一个好办法,通过判断ClickEvent事件发生时Serder参数代表的物件类型来判断滑鼠是否点在了ListView物件的CheckBox上了,可是试验后,我发现并没出现预期的结果,if TCheckBox(Sender).Checked then 这一句执行完后就跳转到最后一行了,似乎Sender参数并不是CheckBox类型的,可是我明明已经点在了ListView列表中的一个CheckBox 物件上了,是哪里不对呢? |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
begin
Item := ListView1.GetItemAt(X, Y);
if (Button <> mbLeft) or (Item = nil) then Exit; if htOnStateIcon in ListView1.GetHitTestInfoAt(X, Y) then
begin
if Item.Checked then .... else.....
end;
end;
|
linxi
一般會員 發表:17 回覆:15 積分:6 註冊:2004-08-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |