如何檢查 DBEdit 資料的正確性? |
尚未結案
|
JuliusChen
一般會員 發表:13 回覆:8 積分:4 註冊:2005-06-29 發送簡訊給我 |
請教各位前輩:
我有一個 Date Type 的 DBEdit 欄位,
我想檢查他在使用者輸入完資料後的格式是否正確,
我測試輸入一個不合法的格式,
他會出現 Debuuger Exception Notification messagesbox,
告訴我 raised exception class EConverterror whith messages
資料轉換的錯誤, 我試著在 DBEdit 的 onDatachange , onExit ,
Dataset 的 BeforePost 來攔截,都欄不到,
是不是有什麼方法可以擋住 這個 messagesbox,
而自己處理這個錯誤呢? 非常感謝!! 發表人 - juliuschen 於 2005/08/10 11:13:35
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
|
JuliusChen
一般會員 發表:13 回覆:8 積分:4 註冊:2005-06-29 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 一般來講﹐對輸入資料的驗証我們會寫在DataSet的BeforePost事件中﹐當然寫在輸入元件的OnChange事件或OnExit事件中也是可以的﹐這是一種習慣﹐將所有需要驗証的輸入內容都寫在DataSet的BeforePost事件中﹐以利于程式碼修改的可攜性﹒
舉個例子來說﹐DBEdit1元件對應資料表的日期欄位﹐以下程式碼寫在DataSet的BeforePost事件中﹐用于驗証輸入內容的正确性﹐如果不正确﹐則取消Post﹐并將輸入焦點轉到該DBEdit1上﹒ Var DT: TDateTime begin if Not TryStrToDate(DBEdit1.Text, DT) then begin ShowMessage('輸入的資料形態錯誤﹐請修正﹗'); DBEdit1.Clear; DBEdit1.SetFocus; Abort; //取消執行此行下所有的程式碼 end; end;不同的資料內容驗証有不同的方法﹐如上的範例中﹐因為是涉及到日期資料﹐所以采用TryStrToDate函數﹐在其它的資料驗証中﹐可使用相同的思路考量﹒ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
JuliusChen
一般會員 發表:13 回覆:8 積分:4 註冊:2005-06-29 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 使用小弟以上的方法應該不會有這樣的問題﹐因為在任何的方法引起DataSet的Post時﹐皆會先触發DataSet的BeforePost事件中程式碼﹐在以上的範例中已對不符合驗証條件的做Abort(取消)動作了﹐既然沒有做之后的Post方法﹐就不會因輸入資料內容不正确而出現錯誤了﹒
方便貼出這部分的完整程式碼嗎﹖ =================================
有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗
================================
發表人 - cashxin2002 於 2005/08/10 17:37:53
------
忻晟 |
shine5188
一般會員 發表:2 回覆:15 積分:8 註冊:2005-05-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |