接續~很多CheckBox的問題~~ |
尚未結案
|
aresu
一般會員 ![]() ![]() 發表:14 回覆:14 積分:5 註冊:2004-07-13 發送簡訊給我 |
for i := 1 to Length(sChoose) -1 do
begin
if Copy(sChoose, i, 1) = ',' then
for j := 1 to 17 do
begin
CheckBoxArray[j] := FindComponent('CheckBox' Chr(64 j)) as TCheckBox;
// CheckBoxArray[j].OnClick := nil;
CheckBoxArray[j].Checked := (Copy(sChoose, i 1, 1) = Chr(64 j)); //or CheckBoxArray[j].Checked;
if CheckBoxArray[j].Checked then //計算勾選的項目
fCount := fCount 1;
end;
end;
在以上程式中~~我希望統計CheckBoxArray[j].Checked的數目~~但因為每個CheckBox的OnClick事件中也都有fCount := fCount 1;
而以上程式似乎會觸發OnClick事件~~使得fCount在以上程式加一次~在OnClick又加一次~~我可以先用CheckBoxArray[j].OnClick := nil;不觸發OnClick事件~~但我該怎麼復原使OnClick正常運作呢~~?
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
加入紅色部份試試:
var p: TNotifyEvent; begin // ... for i := 1 to Length(sChoose) -1 do begin if Copy(sChoose, i, 1) = ',' then for j := 1 to 17 do begin CheckBoxArray[j] := FindComponent('CheckBox' Chr(64 j)) as TCheckBox; p := CheckBoxArray[j].OnClick; CheckBoxArray[j].OnClick := nil; CheckBoxArray[j].Checked := (Copy(sChoose, i 1, 1) = Chr(64 j)); //or CheckBoxArray[j].Checked; if CheckBoxArray[j].Checked then //計算勾選的項目 fCount := fCount 1; CheckBoxArray[j].OnClick := p; end; end; end;-- 向 KTop 的弟兄們致敬! ![]() |
ko
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
aresu 你好:
或許改個方向吧
我的建議
1.CheckBox的OnClick事件
引言: procedure TForm1.CheckBox1Click(Sender: TObject); begin if TCheckBox(Sender).Checked then TCheckBox(Sender).Tag:=1 else TCheckBox(Sender).Tag:=0; end; (每一個CheckBox都可以用)2.寫一個Function 引言: Function TForm1.CheckBoxCount:integer; var ....//這裡宣告 ckBoxArray[j] 跟 i,j 請參考 count:integer; begin count:=0; ..//這段就是找出所有的TCheckBox for i := 1 to Length(sChoose) -1 do begin if Copy(sChoose, i, 1) = ',' then for j := 1 to 17 do begin CheckBoxArray[j] := FindComponent('CheckBox' Chr(64 j)) as TCheckBox; count:=ckBoxArray[j].tag count; end; end; Result:=count; end;
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
aresu
一般會員 ![]() ![]() 發表:14 回覆:14 積分:5 註冊:2004-07-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |