全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1306
推到 Plurk!
推到 Facebook!

請問如何用左右鍵控制form上的button動作

尚未結案
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-25 01:06:18 IP:211.76.xxx.xxx 未訂閱
您好, 請問如何用 鍵盤左-右鍵 直接控制form上的button動作 ,平常按左右鍵,只會在兩個按鈕交互做選取,卻不會執行 ,我希望直接按鍵盤左鍵或右鍵,直接讓其中一個button動作 ,該如何撰寫呢??
mieng
中階會員


發表:12
回覆:97
積分:81
註冊:2003-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-25 02:01:59 IP:61.221.xxx.xxx 未訂閱
將button的動作寫在 OnKeyUp 事件上,不知能否符合您的要求呢?    
void __fastcall TForm1::Button2KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
        Lable1->Caption = "yes";    }
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
        Lable1->Caption = "ok";
}
//---------------------------------------------------------------------------    
學習中請大家多多指導呦~~ ☆星霧☆(Mineg Chien WU)
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-25 04:19:56 IP:211.76.xxx.xxx 未訂閱
發表人 - 潘米 於 2003/11/25 04:22:14
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-25 04:20:07 IP:211.76.xxx.xxx 未訂閱
發表人 - 潘米 於 2003/11/25 04:21:31
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-25 04:20:16 IP:211.76.xxx.xxx 未訂閱
先對板主說聲抱歉,上面不小心多按到傳送,所以多了兩個發表    ~~~ 程式測試可以成功知道按鍵按下 ~~~ 但是我需要讓 >我這個問題會不會很奇怪呢?? (因為通常按[左右鍵]只會讓選取的位置不同) ~~~希望大家幫幫忙,謝謝!! 發表人 - 潘米 於
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-25 08:30:56 IP:203.73.xxx.xxx 未訂閱
引言: 先對板主說聲抱歉,上面不小心多按到傳送,所以多了兩個發表 ~~~ 程式測試可以成功知道按鍵按下 ~~~ 但是我需要讓 >我這個問題會不會很奇怪呢?? (因為通常按[左右鍵]只會讓選取的位置不同) ~~~希望大家幫幫忙,謝謝!! < face="Verdana, Arial, Helvetica"> 潘米 你好: 先試試看利用這篇文章中的做法,自行修改
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-25 14:21:21 IP:211.76.xxx.xxx 未訂閱
今晚再試試看,謝謝回應
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-26 01:37:35 IP:211.76.xxx.xxx 未訂閱
剛才我試了一下子,若單獨只有此程式,可以明確辨識[上下左右]按鍵 ,但是我多加了一個panel2,然後在上面放四個button(沒寫程式碼),結果按[上下左右]按鍵,程式就只會在那四個button做選擇,而不是讓其中一個button動作,另一個panel1也就不會移動了    不知
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-26 09:56:53 IP:203.73.xxx.xxx 未訂閱
引言: 剛才我試了一下子,若單獨只有此程式,可以明確辨識[上下左右]按鍵 ,但是我多加了一個panel2,然後在上面放四個button(沒寫程式碼),結果按[上下左右]按鍵,程式就只會在那四個button做選擇,而不是讓其中一個button動作,另一個panel1也就不會移動了 不知>< face="Verdana, Arial, Helvetica"> 潘米 你好: 以你目前的做法來說,我所能想到最快的修正方式,應該就是先把你最後拉的那 四個 Button 改成四個 Panel,這樣子應該就可以執行了 (當然還有其他比較複 雜的方式,以後再說吧) < class="code"> void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(GetKeyState(VK_UP) & 0x8000) { SendMessage(Panel3->Handle, WM_LBUTTONDOWN, 0, 0); SendMessage(Panel3->Handle, WM_LBUTTONUP, 0, 0); } if(GetKeyState(VK_LEFT) & 0x8000) { SendMessage(Panel4->Handle, WM_LBUTTONDOWN, 0, 0); SendMessage(Panel4->Handle, WM_LBUTTONUP, 0, 0); } if(GetKeyState(VK_RIGHT) & 0x8000) { SendMessage(Panel5->Handle, WM_LBUTTONDOWN, 0, 0); SendMessage(Panel5->Handle, WM_LBUTTONUP, 0, 0); } if(GetKeyState(VK_DOWN) & 0x8000) { SendMessage(Panel6->Handle, WM_LBUTTONDOWN, 0, 0); SendMessage(Panel6->Handle, WM_LBUTTONUP, 0, 0); } } void __fastcall TForm1::Panel3Click(TObject *Sender) { ShowMessage("Panel3Click"); } void __fastcall TForm1::Panel4Click(TObject *Sender) { ShowMessage("Panel4Click"); } void __fastcall TForm1::Panel5Click(TObject *Sender) { ShowMessage("Panel5Click"); } void __fastcall TForm1::Panel6Click(TObject *Sender) { ShowMessage("Panel6Click"); } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-11-27 00:04:28 IP:211.76.xxx.xxx 未訂閱
對ㄟ,我如果只放四個panel,可以用上下左右鍵來控制    不過這段程式,有給我蠻多啟發,我會繼續試試其他方法 ~~~~ 我昨晚有嘗試多放另一個
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-11-29 00:51:19 IP:211.76.xxx.xxx 未訂閱
我將一般的button改成speedbutton ,似乎可解決目前的問題< > 但是要如何做才能在一個程式段內,呼叫另一個 >今晚再熬夜試試看< >
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-11-29 01:01:15 IP:61.221.xxx.xxx 未訂閱
引言: 我將一般的button改成speedbutton ,似乎可解決目前的問題< > 但是要如何做才能在一個程式段內,呼叫另一個 >今晚再熬夜試試看< > 潘米 你好: 看看是不是這個樣子寫呢?? < class="code"> SpeedButton1->Click(); -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
潘米
一般會員


發表:4
回覆:16
積分:4
註冊:2003-10-04

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-11-30 05:29:25 IP:211.76.xxx.xxx 未訂閱
我看到書上有類似副程式呼叫方式,我照他的方法去做 ,可以讓其他buttonu 一起用同段程式... 但是Button->Click()呼叫這個方法更快ㄟ    謝謝 > ~~~新手上路,煩請指教~~~
系統時間:2024-05-04 22:19:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!