嗨我是Delphi的初學者。 但令我困惑的是,我有Edit1.Text 和使用StrToInt(Edit1.Text)的變量「i」; 一切都好,直到我輸入減號德爾福編輯文本整數:減號錯誤
如果我複製/粘貼減號與數字(例如-2)它的作品 任何人都可以幫助我! 問候,奧馬爾
嗨我是Delphi的初學者。 但令我困惑的是,我有Edit1.Text 和使用StrToInt(Edit1.Text)的變量「i」; 一切都好,直到我輸入減號德爾福編輯文本整數:減號錯誤
如果我複製/粘貼減號與數字(例如-2)它的作品 任何人都可以幫助我! 問候,奧馬爾
當您不是100%確定輸入字符串可以轉換爲整數值時,使用StrToInt
轉換函數是不安全的。編輯框就是這樣一個不安全的案例。由於您輸入的第一個字符-
無法轉換爲整數,因此您的轉換失敗。清除編輯框時也會發生同樣的情況。爲了保證這種轉換的安全性,您可以使用TryStrToInt
函數,該函數爲您處理轉換異常。您可以使用這種方式:
procedure TForm1.Edit1Change(Sender: TObject);
var
I: Integer;
begin
// if this function call returns True, the conversion succeeded;
// when False, the input string couldn't be converted to integer
if TryStrToInt(Edit1.Text, I) then
begin
// the conversion succeeded, so you can work
// with the I variable here as you need
I := I + 1;
ShowMessage('Entered value incremented by 1 equals to: ' + IntToStr(I));
end;
end;
顯然,你會得到一個錯誤,因爲-
不是一個整數。您可以改用TryStrToInt。
但我剛開始類型(例如-7),當然首先你鍵入 - 然後7.但是德爾福提供了錯誤的第一 – 2012-08-11 22:35:00
假設你有你'StrToInt'在OnChange事件中的轉換代碼,它失敗了,因爲OnChange事件觸發了每個編輯框文本更改。當你輸入'-'作爲第一個字符時,'OnChange'事件觸發並執行你的'StrToInt'轉換,由於'-'符號不是一個整數。當你清除編輯框時,你也會得到類似的錯誤。 – TLama 2012-08-11 22:47:04
那該怎麼辦? – 2012-08-11 22:56:44
+1。你打了我大約30秒。 :-) – 2012-08-11 23:12:05
@Ken,d'oh。它的目的只是一個臨時職位。現在我需要考慮一些代碼文本。 – TLama 2012-08-11 23:17:32
你可以看到我刪除的,對不對?如果有什麼對你有用的,請隨時幫助你自己。 – 2012-08-11 23:18:20