CheckListBox點選核取方塊的問題 |
答題得分者是:ccchen
|
Sei
一般會員 發表:22 回覆:38 積分:17 註冊:2002-05-22 發送簡訊給我 |
請教前輩們:
我目前使用CheckListBox,我很想做到像CheckBox一樣,點到Caption,核取方塊就會自己打勾,如果有打勾就會不會打勾,所以我在CheckListBox的OnClick裡下了
CheckListBox1.Checked[CheckListBox1.ItemIndex] := not CheckListBox1.Checked[CheckListBox1.ItemIndex]
很高興,「點到字」的確核取方塊勾選了,可是,我要是「點選核取方塊」就選不起來了,不知前輩們有否解決過這樣的事可以指點一下或有類似點了字核取方塊會自己勾選,點了核取方塊也可以選取的元件?感謝感謝!
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
pprayer
高階會員 發表:35 回覆:185 積分:174 註冊:2002-03-13 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
Sei
一般會員 發表:22 回覆:38 積分:17 註冊:2002-05-22 發送簡訊給我 |
感謝二位前輩抽空回答 T.J.B前輩: 您這段程式是放在onClick事件裡嗎?我用F7去追縱,是沒錯,可是點到字(也就是那個ItemIndex)核取方塊不會打勾,還是要點核取方塊 pprayer前輩:
您的方法我試了,還是不行
引言: 試試看if not (CheckListBox1.Checked[CheckListBox1.ItemIndex]) then CheckListBox1.Checked[CheckListBox1.ItemIndex];回首來時路 也無風雨也無晴~~@.@ |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
原因是在Tchecklistbox之sourceocde內onMouseDown時若mouse在checkbox內就會勾選, 因此你寫在onclick內的程式使得mouse在checkbox內時勾選了兩次,結果就還原了.
如下寫在onmousedown內
type TTempCheck=class(TChecklistbox); //由於下面用到Getcheckwidth為protected故須加此行 procedure TForm2.CheckListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i:integer; begin i:=checklistbox1.ItemAtPos(point(x,y),True); //取得點選之item if i>=0 then if x > TTempCheck(Checklistbox1).GetCheckWidth then //若點在checkbox右邊才執行 CheckListBox1.Checked[i] := not CheckListBox1.Checked[i]; end;發表人 - ccchen 於 2002/10/03 16:24:39 |
pprayer
高階會員 發表:35 回覆:185 積分:174 註冊:2002-03-13 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
Sei
一般會員 發表:22 回覆:38 積分:17 註冊:2002-05-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |