2014-09-03 104 views
-1

在將文本轉換爲浮點/整數/日期值並將其分配給表組件時將Delphi文本「您插入了無效值」我得到一個消息框「一個無效值「。將文本轉換爲浮點/整數/日期

我喜歡

Table1.Fieldbyname('XXX').value := strtofloat(Quantity.Text); 

這裏xxx是浮點數據類型的實際代碼,並傳遞值等(5 --- 6)

(或)

Table1.Fieldbyname('XXX').value := inttostr(Quantity.Text); 

這裏xxx是整數數據類型,並傳遞值如(3+)

(或)

Table1.Fieldbyname('XXX').value := strtodatetime(Quantity.Text); 

這裏xxx是日期數據類型,並傳遞值(13/ss)。

我無法驗證對退出事件編輯框中輸入任何內容,

我的問題是,現在用尤里卡日誌捕捉異常,但這些消息不會被尤里卡日誌趕上。這些消息是作爲例外還是僅僅警告消息引發的?

如果它是例外如何處理尤里卡日誌?

+7

'IntToStr(Quantity.Text)'不是你的實際代碼,是嗎? – 2014-09-03 04:25:41

+0

請給出逐字錯誤消息,可能是截圖。也許你也應該做一些調試。 – 2014-09-03 05:57:07

+2

尤里卡只能捕捉未捕獲的異常。主線程中引發的大多數異常,特別是在事件處理程序中,都會被RTL捕獲以顯示彈出消息。 – 2014-09-03 06:56:44

回答

0

如果

... inttostr(Quantity.Text); 

是不是一個錯字那是你的問題,嘗試

.... strtoint(Quantity.Text); 
-1

的地方在哪裏,你有

Table1.Fieldbyname('XXX').value := strtofloat(Quantity.Text); 

計算值實際代碼(或其中一個值),您希望從strtofloat(Quantity.Text)中獲得並用升al值。例如:

Table1.Fieldbyname('XXX').value := 5.6; 

如果該行的執行產生相同的錯誤,那麼你就知道問題出在Fieldbyname()分配。

如果此行的執行不會產生相同的錯誤,那麼您知道您沒有從strtofloat(Quantity.Text)獲得您所期望的。