請教如何得知一個按鈕被按了幾下呢? |
答題得分者是:andychang1690
|
zivu
一般會員 發表:11 回覆:28 積分:12 註冊:2004-04-29 發送簡訊給我 |
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
zivu:使用static 宣告,它所宣告的變數只在自身副程式生效, 第一次載入會以宣告值為主值,改變數值後會保留到你下次改變它為止, 一直到程式結束才銷滅!請試範例: void __fastcall TForm1::Button1Click(TObject *Sender) { static int bi=1; AnsiString showstr="你目前按了" IntToStr(bi ) "次"; Application->MessageBox(showstr.c_str(),"按鍵提示",MB_OK); // 處理其它! } 請參考!Andy Chang
------
Andy Chang |
zivu
一般會員 發表:11 回覆:28 積分:12 註冊:2004-04-29 發送簡訊給我 |
謝謝andychang的幫忙~~~~~!不好意思~~~我應該把我原本的構想說出來~~!使用者要連點Form1兩下就會把那科按鈕從看不見變成看的見(這邊我會)~~!然後那個按鈕基本上是沒有功能的!只有連按了10下~~!我就會讓他做管理者可以做的事~~~!但是現在的問題是~~!我把andychang大大你的程式貼到Form1的onclick下面~~!然後我現在按該按鈕兩次或三次~~~!再點Form它只會偵測到一次~~!再我又接著按該按鈕兩次或三次~~!Form會偵測到兩次~~~!????想不通為什麼會怎樣~~~!可能又要麻煩你了~~!謝謝~~! 發表人 - zivu 於 2004/09/19 00:14:11
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
zivu:奇怪我測試沒問題,現Post我程式如下: void __fastcall TForm1::Button1Click(TObject *Sender) { static int bi=1; AnsiString showstr="你目前按了" IntToStr(bi ) "次"; // Application->MessageBox(showstr.c_str(),"按鍵提示",MB_OK); Label1->Caption=showstr; } 不管我按幾次它就顯示幾次,如果可能你方便Post你部分程式? zivu:不好意思,我知道原因了,於Form1你按的太快,會觸動 DoubleClick事件,連擊只會視同一個按鍵,你還必須處理 OnDblClick事件,或不管它讓使用者多按一次。 不然你就必須於OnMouseDown事件處理這問題。 void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { static int bi=1; if (bi >= 2 && !Button1->Visible) Button1->Visible=true; else bi ; Label1->Caption=bi; } 請參考!Andy Chang 發表人 - andychang1690 於 2004/09/19 00:32:10
------
Andy Chang |
zivu
一般會員 發表:11 回覆:28 積分:12 註冊:2004-04-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |