我可以添加一個單元來提供 StringHelperTCaption嗎?
使用Edit1.Text.Trim, Edit1.Text.ToInteger, etc 比Trim(Edit1.Text), , etc 更簡潔StrToInt(Edit1.Text)。
uj5u.com熱心網友回復:
不幸的是沒有。
TCaption定義為
type
TCaption = type string;
string這使得它與(??因為第二個type)不同的型別,所以TStringHelper不會用于TCaption. 并且沒有TCaptionHelper = record helper for TCaption(理想情況下與 相同TStringHelper)。
在這種情況下,這很煩人,但是語言的這種行為使我可以定義自己的TShoeSize = type Integer并添加自己的TShoeSizeHelper = record helper for TShoeSize,而不會丟失Integer幫助程式。
我個人在 Embarcadero Jira 中建議了一個可以讓您復制或繼承記錄助手的功能;在這種情況下,您可以使用這樣的功能來告訴 DelphiTCaption應該具有與string.
但是直到語言被改變——或者有人只是復制粘貼TStringHelper到一個TCaptionHelper——你能做的最好的就是:
ShowMessage(string(Edit1.Text).ToUpper)
但請注意,這很危險!
萬一不小心寫了怎么辦
ShowMessage(string(Edit1).ToUpper)
這將編譯(指標是指標......)。
uj5u.com熱心網友回復:
沒有類助手TCaption,沒有。
TCaptionstring是與用于 DFM 目的的其自己的 RTTI不同的型別,因此該標準TStringHelper不會將其識別為string.
我希望型別別名TCaption能夠訪問其基本型別的助手,但可惜,事實并非如此。QualityPortal 中已經有關于此問題的報告:RSP-13736、RSP-16486、RSP-36474等。
與此同時,你能做的最好的就是將TCaptiona 轉換為 a string,例如:
string(Edit1.Text).Trim
string(Edit1.Text).ToInteger
...
否則,您將不得不撰寫自己的類助手,TCaption以便將其作業委托給標準string助手。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433771.html
