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

關於 Tedit 元件的輸入大小

尚未結案
yhc0927
一般會員


發表:3
回覆:5
積分:1
註冊:2003-12-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-21 22:55:49 IP:203.204.xxx.xxx 未訂閱
我今天宣告一個 int a 我想將 Tedit 元件裡面的輸入 轉成數字存到a去 我的做法是 a = edit->Text.ToInt(); 但是我發現一個問題就是說 如果我輸入超過 11的數字(假設是11111111111) 時就會出錯 一個 valid interger的錯誤訊息。 請問我這是錯在哪裡呢? 有沒有什麼解決的辦法?
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-22 00:09:53 IP:221.169.xxx.xxx 未訂閱
int 的最大極限是多少?你有查過嗎? 你輸入的值是不是超過上限呢? 怎麼處理????不要讓使用者有機會輸入那麼大的值。 或是不要用32位元的INT囉。
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-22 09:33:04 IP:210.243.xxx.xxx 未訂閱
引言: 我今天宣告一個 int a 我想將 Tedit 元件裡面的輸入 轉成數字存到a去 我的做法是 a = edit->Text.ToInt(); 但是我發現一個問題就是說 如果我輸入超過 11的數字(假設是11111111111) 時就會出錯 一個 valid interger的錯誤訊息。 請問我這是錯在哪裡呢? 有沒有什麼解決的辦法?
您好, 一個int的數值範圍為 -2147483648 ~ 2147483647, 當超出這個範圍時就會發生錯誤, 而解決您問題的方法就是用try..except把這部份的碼包起來, 在適當的時機顯示錯誤訊息, 例如:
  __try
  {
    int a = Edit1->Text.ToInt();
  }
  __except(TRUE)
  {
    ShowMessage("不正確的整數值, 請輸入-2147483648 ~ 2147483647間的值");
  };
這是在BCB裡是這樣解釋ToInt()的: ToInt converts the given string to an integer value and returns the integer. If the string doesn't contain a valid value, an EConvertError exception is thrown. 當所要轉換的字串不是一個有效的整數會出現例外.
系統時間:2024-04-18 12:04:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!