如何在MessageBox訊息顯示後,讓游標出現在下一個MaskEdit中? |
答題得分者是:RedSnow
|
depblue
一般會員 ![]() ![]() 發表:38 回覆:29 積分:13 註冊:2004-12-27 發送簡訊給我 |
我設計的畫面如下:
|
pillar62
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 您的程式碼并沒有錯誤﹐檢查對應[張數]的MaskEdit元件是否有其它的事件程式碼進行控制﹐比如說OnKeyPress等事件中存在對其的控管﹒
或者把這個MaskEdit移除﹐重新加入一個新的MaskEdit﹐只更改其Name和Text屬性值﹐其它不用更改﹐使用其預設屬性值再Run一次﹐看看是否可解決問題﹐如果可以的話﹐就是屬性部分設定的錯誤了﹒ =================================
------
忻晟 |
RedSnow
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
depblue 您好: 您這個問題幾乎和下列這一篇的問題一模一樣:
是須閃避的 BCB TQuery OnExit BUG 嗎?
http://delphi.ktop.com.tw/topic.php?topic_id=70995
您無需去管該篇的標題是怎麼寫的?請仔細的瀏覽一下內文。 其實游標應該有 Focus 到 MaskEdit6 欄位裡去,當您直接按下字母鍵時會插入該字母,按下刪除鍵也能刪掉字元,只是看不到游標而已,我針對那種狀況做過測試,然後才做的回覆,因此我提出的方法是有效的,但是該篇討論中使用的範例是 BCB 所撰寫的,不知道您是否能自己轉成 Delphi 的來用?
|
RedSnow
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
depblue 您好: 我剛才搜尋了站上的文章,試著將我原先以 BCB 寫的敘述轉換成 Delphi 的,並配合您原先的敘述來改寫成下列的範例,您試試看:
... 以上略... if stbscQu.RecordCount = 0 then begin BTBeeper1.PlayDefaultSound; PostMessage(MaskEdit6.Handle, WM_KILLFOCUS, 0, 0); if MessageBox(Handle,'此為新規格,是否確定?','詢問訊息',MB_YESNO) = IDNO then begin PDJMASKComEdit1.SetFocus; Abort; end else PostMessage(MaskEdit6.Handle, WM_SETFOCUS, 0, 0); end; ... 以下略...如果 Focus 離開 PDJMASKComEdit1 之後,不一定是到 MaskEdit6 欄位去的話,那麼您可以將那兩行紅字標示處的 MaskEdit6 改成 ActiveControl,這樣子就會在操作者回覆為 YES 時,將 Focus 返回原先指到的物件去了。 附註:我前一篇所列出的那篇討論中,原發問者提到可能是編譯環境版本上的差異,因此他必須在處理 WM_SETFOCUS 的敘述之前,加上一個移轉焦點至欲返回焦點物件以外物件的動作,如果您使用上述方式未能完全達到正常運作的話,請您也試著加上移轉焦點到其它物件上的敘述,例如:PDJMASKComEdit1.SetFocus; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |