如何知道Button已經被按下了?? |
答題得分者是:brook
|
ddaken
一般會員 發表:39 回覆:33 積分:19 註冊:2005-01-21 發送簡訊給我 |
|
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
可以利用 Button 的 Tag 當成 flag ,紀錄是不是按了 ,for 迴圈 是不是 跑完了!!
===================引 用 ddaken 文 章=================== 請問各位大大~如果我有50個Button~~ 當第一個Button被按下時,我在Button1Click裡面會有一個for迴圈在執行 可是我希望當此時按下其他的Button時,可以馬上跳出此for迴圈去執行其他ButtonxClick裡面的事件 有沒有什麼方法或是參數可以紀錄或是使用呢? |
ddaken
一般會員 發表:39 回覆:33 積分:19 註冊:2005-01-21 發送簡訊給我 |
Hello salo0610 大大
可否請您再說清楚一點?? 這個方法我有試過~但是並沒有如願的馬上跳出for迴圈~ 您的意識是這樣嗎? 可是我試過當我按下Button1接著馬上按下Button2的時候~ Label1->Caption永遠都是0~並不會馬上偵測到Button2->Tag==1呀?? 看樣子似乎是當Button1Click()在執行時,我按下Button2Click()並不會馬上讓 Button2->Tag=1; [code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { for(int alpha=0; alpha<50000; alpha ) { ..... Label1->Caption=Button2->Tag; if (Button2->Tag=1) break; } } void __fastcall TForm1::Button2Click(TObject *Sender) { Button2->Tag=1; for(int qq=0; qq<50000; qq ) { ..... } } [/code] |
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
[code cpp] 請在此區域輸入程式碼 int Quit; void __fastcall TForm1::Button1Click(TObject *Sender) { Quit = 1; Sleep(200); Quit = 0; for (int i=0;i<10000;i ) { Application->ProcessMessages(); if (Quit) break; Button1->Caption = i; Sleep(100); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Quit = 1; Sleep(200); Quit = 0; for (int i=0;i<10000;i ) { Application->ProcessMessages(); if (Quit) break; Button2->Caption = i; Sleep(100); } } [/code] |
ddaken
一般會員 發表:39 回覆:33 積分:19 註冊:2005-01-21 發送簡訊給我 |
|
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
[code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { if( Timer1->Tag==0 ){ Timer1->Enabled = true; } Button1->Tag = 1; Button2->Tag = 0; } //------------------------------------------------------------------------------ void __fastcall TForm1::Button2Click(TObject *Sender) { if( Timer1->Tag==0 ){ Timer1->Enabled = true; } Button1->Tag = 0; Button2->Tag = 1; } //------------------------------------------------------------------------------ void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Enabled = false; Timer1->Tag = 1; while(Button1->Tag==1 || Button2->Tag==1 ) { if( Button1->Tag==1 ) { for(int i=0 ; i<100000 ; i ) { Button1->Caption = String(i); if(Button1->Tag==0) break; Application->ProcessMessages(); } Button1->Tag = 0; } if( Button2->Tag==1 ) { for(int i=0 ; i<100000 ; i ) { Button2->Caption = String(i); if(Button2->Tag==0) break; Application->ProcessMessages(); } Button2->Tag = 0; } } Timer1->Tag = 0; } //--------------------------------------------------------------------------- [/code] 但我覺得 我好像把事情弄復雜了!!! |
ddaken
一般會員 發表:39 回覆:33 積分:19 註冊:2005-01-21 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
[code cpp] 請在此區域輸入程式碼 int Quit; void __fastcall TForm1::Button1Click(TObject *Sender) { Quit = 0; for (int i=0;i<10000;i ) { Application->ProcessMessages(); if (Quit) break; Button1->Caption = i; } Quit = 1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Quit = 0; for (int i=0;i<10000;i ) { Application->ProcessMessages(); if (Quit) break; Button2->Caption = i; } Quit = 1; } [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |