線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1921
推到 Plurk!
推到 Facebook!

checkbox1.checked:=true时,里面的程式不执行

尚未結案
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-04 17:16:48 IP:61.164.xxx.xxx 未訂閱
各位大大: 小弟又有问题求教, 比方说,当我在程式的button1中写下"checkbox1.checked:=true"时,相应的checkbox1就相当于被mouse click,里面的程式就会被执行,但我现在只希望当我在按下button1时,只是checkbox1被打上勾,但里面的程式不执行,这样可以吗?(即checkbox1只在真正用mouse click时里面的程式起作用) Thank you very much! 發表人 - luowy651 於 2004/05/04 17:19:19
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-04 19:34:10 IP:202.39.xxx.xxx 未訂閱
試試:
procedure TForm1.Button3Click(Sender: TObject);
begin
  checkbox1.Checked := true;
end;    procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if ActiveControl = CheckBox1 then // 因為直接點選 CheckBox, Focus 必定在 CheckBox1 上, 由此來判斷
    showmessage('clicked');
end;
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-04 19:42:41 IP:211.20.xxx.xxx 未訂閱
luowy651 你好
試試以下程式
Type
  TTemp = Class(TButtonControl) // 建立臨時類別
  public
    property ClicksDisabled; // 開放屬性
  End;    procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  SaveClicksDisabled : Boolean; // 保存屬性用
begin
  SaveClicksDisabled := TTemp(CheckBox1).ClicksDisabled ;//保存原屬性值
  TTemp(CheckBox1).ClicksDisabled := True; //  設定不反應Click事件
  CheckBox1.State := cbChecked; // 更改
  或
  CheckBox1.checked := True; // 更改
  TTemp(CheckBox1).ClicksDisabled := SaveClicksDisabled;//還原屬性值
end;
PS:這一招也是從hagar大大處學來的 發表人 - chance36 於 2004/05/04 19:44:34
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-04 19:47:50 IP:202.39.xxx.xxx 未訂閱
啊 Chance36 大大, 不要褒小弟了啦! 要追溯的話, 都是從 ccchen/Justmade/william/Mickey 等大大那裏偷來的啦! 老實說, 還沒用過
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-04 20:23:16 IP:218.32.xxx.xxx 未訂閱
引言: 啊 Chance36 大大, 不要褒小弟了啦! 要追溯的話, 都是從 ccchen/Justmade/william/Mickey 等大大那裏偷來的啦! 老實說, 還沒用過 >< face="Verdana, Arial, Helvetica"> 呵呵...大家客氣了...我記得我沒有相關的文章回應阿......老了. 言歸正傳, 把 class="code"> procedure TForm1.CheckBox1Click(Sender: TObject); begin showmessage('CheckBox Clicked !'); end; procedure TForm1.Button1Click(Sender: TObject); var CheckBoxClickEvent : TNotifyEvent; begin CheckBoxClickEvent := CheckBox1.OnClick; // 存下 CheckBox1.OnClick CheckBox1.OnClick := nil; //清掉 CheckBox1.OnClick try CheckBox1.Checked := not CheckBox1.Checked; finally CheckBox1.OnClick := CheckBoxClickEvent; // 恢復 CheckBox1.OnClick end; end;
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-05 15:18:55 IP:61.164.xxx.xxx 未訂閱
感谢Hagar,Chance36和Mickey大大的精彩回应,简直令小弟大开眼界! 但由于Hagar大大是第一个回应,且方法最为简单,分就给Hagar大大了. 再次感谢各位大大! 哪一天小弟有机会也能象诸位大大那样给人解惑就好了。
系統時間:2024-04-29 23:15:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!