是否有用于 TCaptions 的 StringHelper?
Is there a StringHelper for TCaptions?
我可以添加一个单元来为 TCaption
提供 StringHelper 吗?
使用 Edit1.Text.Trim
、Edit1.Text.ToInteger
等比 Trim(Edit1.Text)
、StrToInt(Edit1.Text)
等更整洁
TCaption
没有class助手,没有
TCaption
是与 string
不同的类型,具有用于 DFM 目的的自己的 RTTI,因此标准 TStringHelper
不会将其识别为 string
。
我希望像 TCaption
这样的类型别名能够访问其基类型的助手,但是,事实并非如此。 QualityPortal 中已经有关于此问题的报告:RSP-13736, RSP-16486, RSP-36474,等等
与此同时,您最好将 TCaption
转换为 string
,例如:
string(Edit1.Text).Trim
string(Edit1.Text).ToInteger
...
否则,您必须为 TCaption
编写自己的 class 助手,将其工作委托给标准 string
助手。
很遗憾没有。
TCaption
定义为
type
TCaption = type string;
这使得它与 string
不同(因为第二个 type
)所以 TStringHelper
不会用于 TCaption
。并且没有 TCaptionHelper = record helper for TCaption
(理想情况下与 TStringHelper
相同)。
在这种情况下这很烦人,但是语言的这种行为使我可以定义自己的 TShoeSize = type Integer
并添加自己的 TShoeSizeHelper = record helper for TShoeSize
而不会丢失 [=22] =] 助手.
我个人在 Embarcadero Jira 中建议了一个功能,可以让您复制或继承记录助手;在这种情况下,您可以使用这样的功能来告诉 Delphi TCaption
应该具有与 string
.
相同的助手
但是在语言发生变化之前——或者有人只是 copy-pastes TStringHelper
变成了 TCaptionHelper
——你能做的最好的事情是:
ShowMessage(string(Edit1.Text).ToUpper)
但要注意这是危险的!
不小心写错了怎么办
ShowMessage(string(Edit1).ToUpper)
那会编译(指针就是指针...)。
我可以添加一个单元来为 TCaption
提供 StringHelper 吗?
使用 Edit1.Text.Trim
、Edit1.Text.ToInteger
等比 Trim(Edit1.Text)
、StrToInt(Edit1.Text)
等更整洁
TCaption
没有class助手,没有
TCaption
是与 string
不同的类型,具有用于 DFM 目的的自己的 RTTI,因此标准 TStringHelper
不会将其识别为 string
。
我希望像 TCaption
这样的类型别名能够访问其基类型的助手,但是,事实并非如此。 QualityPortal 中已经有关于此问题的报告:RSP-13736, RSP-16486, RSP-36474,等等
与此同时,您最好将 TCaption
转换为 string
,例如:
string(Edit1.Text).Trim
string(Edit1.Text).ToInteger
...
否则,您必须为 TCaption
编写自己的 class 助手,将其工作委托给标准 string
助手。
很遗憾没有。
TCaption
定义为
type
TCaption = type string;
这使得它与 string
不同(因为第二个 type
)所以 TStringHelper
不会用于 TCaption
。并且没有 TCaptionHelper = record helper for TCaption
(理想情况下与 TStringHelper
相同)。
在这种情况下这很烦人,但是语言的这种行为使我可以定义自己的 TShoeSize = type Integer
并添加自己的 TShoeSizeHelper = record helper for TShoeSize
而不会丢失 [=22] =] 助手.
我个人在 Embarcadero Jira 中建议了一个功能,可以让您复制或继承记录助手;在这种情况下,您可以使用这样的功能来告诉 Delphi TCaption
应该具有与 string
.
但是在语言发生变化之前——或者有人只是 copy-pastes TStringHelper
变成了 TCaptionHelper
——你能做的最好的事情是:
ShowMessage(string(Edit1.Text).ToUpper)
但要注意这是危险的!
不小心写错了怎么办
ShowMessage(string(Edit1).ToUpper)
那会编译(指针就是指针...)。