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

程式本身已經在一個ButtonA内執行,怎樣才能偵測到寧一個ButtonB有Check事件的產生?

尚未結案
jasonyangpeng
一般會員


發表:2
回覆:6
積分:1
註冊:2005-07-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-15 11:35:44 IP:219.137.xxx.xxx 未訂閱
程式本身已經在一個ButtonA内執行,還沒有退出,怎樣才能偵測到一個ButtonB有Check事件的產生? 例如: procedure TForm1.ButtonAClick(Sender: TObject); being for n:=0 to 10 do begin {do something} if ButtonB.Checked=True then // 這裡該怎樣做? begin {Do somethings} end; end; end;
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-15 12:04:40 IP:61.222.xxx.xxx 未訂閱
不會有這樣的結構。 幾點理由: 1. ButtonAClick 在執行時,基本上是處於沒有回應狀態。 因此既使點選CheckBox 也必須等到ButtonAClick 執行完畢才會處於Checked狀態。 2. 可在迴圈內加入 Application.ProcessMessages 雖然可以解決此問題。 但相對付出的是應用程式效能很差會有遲鈍的效果。並佔用了多數CPU效能。 不建議這樣做。太沒.... 3. 建議透過 Thread 或者 重新思考流程。先CheckBox -> ButtonA 參考。 ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-15 12:08:48 IP:203.70.xxx.xxx 未訂閱
var
bChecked:Boolean;    procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
begin
  i:=1;
  While i>0 do
  begin
    Application.ProcessMessages;
    if bChecked then
    begin
      Showmessage('checked');
      break;
    end;
  end;    end;    procedure TForm1.Button2Click(Sender: TObject);
begin
  bChecked:=True;
end;
@瞭解越多.懂得越少@
jasonyangpeng
一般會員


發表:2
回覆:6
積分:1
註冊:2005-07-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-15 12:28:08 IP:219.137.xxx.xxx 未訂閱
wameng說得很對,其實我也沒有採用這樣的架構,我採用Thread,其實我想問的 關鍵是在Thread中我怎樣才能檢測到ButtonB有Check的動作,要求要比較及時地。多謝各位大大指教
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-15 16:25:56 IP:61.222.xxx.xxx 未訂閱
>關鍵是在Thread中我怎樣才能檢測到ButtonB有Check的動作 方法有很多種。主要是看您的Thread.execute 寫法。 1. 可設定全域變數如:BtnBChecked : Boolean 。 在ButtonB有Check的動作,設定 BtnBChecked :=True; 這就無須考慮讀取物件必須Synchronize 的問題。 2. 或者利用 PostThreadMessage 的方式,傳達給Thread 知道。 主要還是看你的用途或流程或Thread定位於何種工作而定。 ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~
系統時間:2024-05-19 12:43:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!