Radiobutton的问题 |
答題得分者是:Stallion
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
引言: 我也是猜測 只要Checked被設定,就會觸發OnClick事件,試試看。 procedure TForm1.Button1Click(Sender: TObject); begin CheckBox1.Checked:=not CheckBox1.Checked; end; procedure TForm1.CheckBox1Click(Sender: TObject); begin ShowMessage('dasf'); end;根据您的指点,我试了一下,radiobutton可以写在onclick事件中,checkbox不能写在onclick事件中,因为假设第一次click,那么checkbox是选中,第二次click那么就是未选中,第三次又是选中,但我要的只是在选中时(checked:=true)时发生。谢谢!
------
我的编程起步于ktop,我将永远支持ktop |
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
TRadioButton組件的OnClick事件衹有當該組件是被選中時才會激發。
也就是講,當TRaidoButton的狀態是從未被選中變成被選中,才能有OnClick事件執行,而當狀態是從被選中變成未被選中時,OnClick事件就不能被觸發。 所以本身已經符合您的要求:“但我要的只是在选中时(checked:=true)时发生” ----------------------------
於Delphi K.Top之上
博采眾家之長, 奉獻綿薄之力
--------------------------- 發表人 - h@visli 於 2005/08/04 09:11:51
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
對於TCheckBox組件,則OnClick事件在Checked狀態改變時都會執行。
所以如果您要實現“但我要的只是在选中时(checked:=true)时发生”效果。 則請不要使用OnClick事件,而改用下面的兩個事件來共同完成:
procedure TForm1.CheckBox1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if not CheckBox1.Checked then edit3.Text := inttostr(strtoint(edit3.Text) 1); end; procedure TForm1.CheckBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if CheckBox1.Checked then edit3.Text := inttostr(strtoint(edit3.Text) 1); end;---------------------------- 於Delphi K.Top之上 博采眾家之長, 奉獻綿薄之力 ---------------------------
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
引言: 根据您的指点,我试了一下,radiobutton可以写在onclick事件中,checkbox不能写在onclick事件中,因为假设第一次click,那么checkbox是选中,第二次click那么就是未选中,第三次又是选中,但我要的只是在选中时(checked:=true)时发生。谢谢!插花: 在CheckBox加上一个判断都一样的,如下,当(checked:=true)时发生: procedure TForm1.RadioButton1Click(Sender: TObject); begin showmessage('checked!'); end; procedure TForm1.CheckBox1Click(Sender: TObject); begin if CheckBox1.Checked then //只有checked就触发 showmessage('checked!') end;============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |