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

FormKeyPress的事件

答題得分者是:a6475
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-06 23:09:52 IP:218.165.xxx.xxx 未訂閱
我在FormKeyPress寫了以下程式,可是只有儲存和取消有作用,其它兩個卻沒有,這是為什麼呢?煩請大大們幫我解惑... IF (key=#13) then//儲存 button9click(sender); If (key=#27) then//取消 begin query1.Cancel; edit1.Text := ''; edit2.Text := ''; end; IF (key=#46) then//刪除 button7click(sender); IF (key=#45) then//新增 button5click(sender);
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-06 23:28:10 IP:61.216.xxx.xxx 未訂閱
IF (key=#46) then//刪除 button7.click; IF (key=#45) then//新增 button5.click; TRY TRY SEE
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-07 00:16:38 IP:218.165.xxx.xxx 未訂閱
也是不行,但是把button9改成click卻一樣能執行@@
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-07 07:46:02 IP:61.219.xxx.xxx 未訂閱
應該是沒有問題才對, 除非你用鍵盤右邊的數字鍵且NUMLOCK在off狀態 試試在Button7Click及button5Click上設Break Point看程式是否會執行到此
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-07 10:48:15 IP:218.165.xxx.xxx 未訂閱
若鼠標在edit上,則按delete會刪除鼠標右方一個字元,若force在資料錄上,則兩個完全沒有作用。 若在刪除、新增設中斷點,pass count=0。(代表沒執行到?) 若在儲存、取消設中斷點,則不能編譯,取消中斷點再編譯則呼叫表單時出現BDE error$2501。
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-07 11:21:29 IP:211.74.xxx.xxx 未訂閱
Edit1KeyPress有指向FormKeyPress嗎??
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-08 10:37:13 IP:218.165.xxx.xxx 未訂閱
引言: Edit1KeyPress有指向FormKeyPress嗎??
不懂你的意思ㄟ?和edit1有什麼關係啊? 儲存和取消這兩個功能鍵能正常使用,我只是設中斷點看看和不能使用的功能鍵有何不同現象。
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-08 10:52:40 IP:61.216.xxx.xxx 未訂閱
因為你的事件寫在FormKeyPress,Edit1KeyPress沒有指向FormKeyPress的話,那就不會觸動FormKeyPress的事件阿.. TRY TRY SEE
引言: 不懂你的意思ㄟ?和edit1有什麼關係啊? 儲存和取消這兩個功能鍵能正常使用,我只是設中斷點看看和不能使用的功能鍵有何不同現象。
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-08 11:22:00 IP:218.165.xxx.xxx 未訂閱
我知道了,你指的應該是把form上的button的keypress事件指向formkeypress吧,我剛試了一下,用上下方向鍵來做上筆、下筆的移動,但沒有效果。 我是這樣寫的: If (key=#38) then button2.Click;//↑上筆 IF (key=#40) then button3.Click;//↓下筆
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-08 11:41:03 IP:61.216.xxx.xxx 未訂閱
你回顧一下你這篇文章,問題講的滿亂的..你要不要在整理一下你的問題,順便把有問題的部分完整的code post上來ㄋ,不然不知道你到底哪裡出錯..
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-03-08 11:50:31 IP:218.165.xxx.xxx 未訂閱
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin//鍵盤控制 IF (key=#13) then button9.click;//enter儲存 If (key=#27) then//esc取消 begin query1.Cancel; edit1.Text := ''; edit2.Text := ''; end; IF (key=#46) then button7.Click;//delete刪除 IF (key=#45) then button5.Click;//insert新增 If (key=#38) then button2.Click;//↑上筆 IF (key=#40) then button3.Click;//↓下筆 IF (key=#37) then button1.Click;//←首筆 IF (key=#39) then button4.Click;//→末筆 end; 除了儲存和取消鍵有作用,剩下的按鍵都沒有作用,按鍵我都有把BUTTON的KEYPRESS指向FORMKEYPRESS。
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-03-08 13:23:43 IP:61.216.xxx.xxx 未訂閱
你應該把所有事件寫在個別button的click就可以了這樣比較單純..因為你有事定像(key=#46) 等等這一些..所以要去按到相對應的key才會有作用喔...
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-03-08 14:02:00 IP:218.165.xxx.xxx 未訂閱
我把它改寫到click下了,但編譯時卻說我沒有 [Error] customer01.pas(189): Undeclared identifier: 'key' ,為什麼要宣告啊?那不是內定義的字嗎? 我發現在dbgrid點一下後,就能用上下鍵來移動了,可是這樣還是要動到滑鼠,那設上下鍵就失去意義了@@ 若是在一進入表單就按上鍵,就會跳到dbgrid,就能用上下鍵移動,而不用寫任何程式。 若是一進入表單就按下鍵,就會跳到dbedit1。
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-03-08 14:36:02 IP:61.216.xxx.xxx 未訂閱
天阿..請你把問題講清楚..ok??一開始是FormKeyPress,而怎麼又變成dbgrid了ㄋ?? 真的建議,你把整本書k完再來寫吧.. 無力中...
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-03-08 14:42:07 IP:218.165.xxx.xxx 未訂閱
我只是把我所試到的結果都拿出來討論,看能不能找出個所以然,問題一直都是"按下按鍵卻沒反應"!!!沒有變過。 而DBGRID只是我各方嚐試的過程中,在某種況狀下會有反應的元件。 這樣說有沒有比較清楚了....
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-03-08 14:58:34 IP:203.204.xxx.xxx 未訂閱
請問會不會是你的那兩個button的click事件有作什限制,所以不能執行? 你可以把整個程式上傳,好讓各位高手先進幫你解決。
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-03-08 15:19:03 IP:218.165.xxx.xxx 未訂閱
檔案已上傳,有勞各位大大們了.... 尤其是CHIH,真是辛苦你了@@
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-03-10 20:22:29 IP:61.229.xxx.xxx 未訂閱
這個我遇過。 不要把事件FormKeyPress改寫在FormKeyDown或FormKeyUp 就可以了。 因為FormKeyPress對某些按鍵會沒有作用 FormKeyDown則無此限制 月夜 光明 藍更愁
------
月夜 光明 藍更愁
系統時間:2024-05-03 22:05:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!