如何使用一個botton去停止另一個botton的while迴圈 |
答題得分者是:blk5743
|
yangdada
一般會員 發表:7 回覆:6 積分:2 註冊:2004-06-10 發送簡訊給我 |
int action; //------------------------------------------------------------------ void __fastcall TPlant::Button3Click(TObject *Sender) { float value; action=1; while (action>0) { value=AD(); if(value > 0.4) { ...... } else if(value > 0.35) { .... } else if(value > 0.3) { ... } else if(value > 0.2) { ... } else if(value > 0.1) { ... } else { ... } } } //------------------------------------------------------------------- void __fastcall TPlant::Button4Click(TObject *Sender) { action=0; }請問以上的動作為什麼沒辦法正常運做 那該如合改進比較好呢? 謝謝 發表人 - yangdada 於 2005/03/01 16:06:50 發表人 - taishyang 於 2005/03/01 23:09:29 |
blk5743
高階會員 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
yangdata你好 你可以加入Application->ProcessMessages();
while (action>0)
{
....
Application->ProcessMessages();
} 因為你雖然在按下Button4時,讓action = 0
但是因為Button3的迴圈太快,沒辦法接收到action = 0
當你加入Application->ProcessMessages();
他就可以接收到Button4Click的事件
=> action = 0 => 跳出while (action > 0)
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
yangdada
一般會員 發表:7 回覆:6 積分:2 註冊:2004-06-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |