線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1092
推到 Plurk!
推到 Facebook!

如何模擬 mouse 在 grid 按下一筆

尚未結案
zzz
一般會員


發表:7
回覆:6
積分:2
註冊:2003-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-10 17:54:11 IP:209.86.xxx.xxx 未訂閱
各位前輩 小弟用的並不是 dbGrid 元件, 而是用某家公司出的 Grid 元件, 我在某欄位的 validate 事件中寫了一些程式, 當程式執行時按鍵盤的 "下" 就會錯, 而用 mouse 選下一筆卻不會錯, 這個已證實是那家公司出的 Grid 有 bug, 但我又不得不用這個元件... T.T 所以想到的方法是當按 "下" 時不執行, 而去模擬 mouse 按下一筆.. 不知這個方法行的通嗎? 要怎麼模擬 mouse 按下一筆? thanks!!
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-10 18:04:19 IP:61.70.xxx.xxx 未訂閱
看看這篇有沒有幫助 http://delphi.ktop.com.tw/topic.php?topic_id=22147
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-10 19:34:51 IP:61.31.xxx.xxx 未訂閱
可在 KeyDown 事件中攔截 按鍵盤的 "下" 改為 procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key=40 then begin Key := 0; Query1.Next; end; end; ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~
zzz
一般會員


發表:7
回覆:6
積分:2
註冊:2003-04-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-11 09:00:52 IP:209.86.xxx.xxx 未訂閱
感謝wameng版主, 我試了用 Query1.Next 確實不會再發生錯誤訊息了! 只是會跳到下下筆(多跳一行), 所以我又加上了 Query1.Prior 目前測試 ok , 只是心理毛毛的... 再次感謝 supman, wameng版主 兩位前輩的幫忙!!
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-11 23:29:58 IP:61.31.xxx.xxx 未訂閱
我試過並不會有跳二行的動作。 大概是本身元件的關係。 可以是著攔截 WM_KEYDOWN 訊息,早該元件提前做處理。 可採用元件繼承方式。 如:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=70761 ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~
系統時間:2024-11-23 1:45:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!