請問各位老手,BCB有沒有攔截錯誤的指令! |
尚未結案
|
brian7003
一般會員 發表:1 回覆:2 積分:0 註冊:2003-07-20 發送簡訊給我 |
我是個剛學BCB的新手,最近遇到一個狀況
EX:
//---------------------------------
StrToInt(Edit1->Text)
//---------------------------------
如果(Edit1->Text)是Null或者非數字系統,
那麼執行到這一行就會發生錯誤,
我想請問有沒有指令可以在錯誤發訊息發生前...
先把它攔下來,再把它改回正常值,像Edit1->Text = "0" 像我之前想到治標的方法:
void __fastcall TForm1::Edit11KeyPress(TObject *Sender, char &Key)
{
if (!((Key > 47)&&(Key < 58)||(Key == 8)||(Key == 13)))
Key = 0;
}
但只要小數點".."按兩次它還是會錯 所以想請問各位老手,BCB有沒有攔截錯誤的指令!
拜託啦!3q3q 發表人 - brian7003 於 2003/09/03 12:54:27
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我是個剛學BCB的新手,最近遇到一個狀況 EX: //--------------------------------- StrToInt(Edit1->Text) //--------------------------------- 如果(Edit1->Text)是Null或者非數字系統, 那麼執行到這一行就會發生錯誤, 我想請問有沒有指令可以在錯誤發訊息發生前... 先把它攔下來,再把它改回正常值,像Edit1->Text = "0" 像我之前想到治標的方法: void __fastcall TForm1::Edit11KeyPress(TObject *Sender, char &Key) { if (!((Key > 47)&&(Key < 58)||(Key == 8)||(Key == 13))) Key = 0; } 但只要小數點".."按兩次它還是會錯 所以想請問各位老手,BCB有沒有攔截錯誤的指令! 拜託啦!3q3qbrian7003 你好: 請參考以下的寫法 bool IsStrInt(AnsiString sz) { try { StrToInt(sz); } catch(EConvertError &e) { return false; } return true; }-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
Ricky_567
一般會員 發表:34 回覆:38 積分:19 註冊:2006-11-09 發送簡訊給我 |
|
brian7003
一般會員 發表:1 回覆:2 積分:0 註冊:2003-07-20 發送簡訊給我 |
|
DyingYoung
一般會員 發表:1 回覆:3 積分:0 註冊:2003-11-29 發送簡訊給我 |
雖然已經是這摸久的主題了~
最近剛好有用到, 還是把拙見 po 上來給大家指教一番!
若先進有更好的方法記得告知呦~ :)
//------------------------------------------------ void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { TEdit *e = dynamic_cast發表人 - taishyang 於 2003/12/11 13:42:28 |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |