gpt4 book ai didi

delphi - 使用.AsString 还是.Text?

转载 作者:行者123 更新时间:2023-12-03 14:45:10 45 4
gpt4 key购买 nike

我刚刚看到了他们使用的一些代码(D5)...

aStr:=tblAcct.FieldByName('Name').Text;

它似乎工作正常,但我一直使用......

aStr:=tblAcct.FieldByName('Name').AsString;

我在加载 TMemo 时使用了这两种方法,但似乎没有区别。

aMemo.Lines.Text:=tblAcct.FieldByName('History').Text;
aMemo.Lines.Text:=tblAcct.FieldByName('History').AsString;

有什么理由让我应该使用其中一种而不是另一种吗?如果有,是哪一个?

其实对于TMemo,我通常使用...

aMemo.Lines.Assign(tblAcct.FieldByName('History'))

这似乎也工作得很好。

谢谢

最佳答案

Text属性旨在用于获取 DataAware 控件中正在编辑的字段的文本表示形式,与 DisplayText 形成鲜明对比。属性,它为您提供一个字符串来向用户表示值(它可能包含标点符号或其他装饰到纯值)。

Contains the string to display in a data-aware control when the field is in edit mode

一个典型的示例是 Currency 属性设置为 True 的 TFloatField。 DisplayText 为您提供一个字符串,其中的数字包含逗号(如果需要)、小数点分隔符和货币符号。 Text 属性为您提供一个不带逗号或货币符号的字符串。

begin
MyFloatField.Currency := True;
MyFloatField.AsFloat := 1234.56;
A := MyFloatField.Text; //'1234.56'
B := MyFloatField.DisplayText; //'$1,234.56', depends on your locale
end;

以上两个属性都可以自定义,编写 OnGetText您可以在事件处理程序中编写自定义逻辑来将值转换为字符串表示形式。 DisplayText 参数指示所需的字符串是否表示要编辑的值。

另一方面,AsString 属性在基本数据类型和字符串之间使用更简单的转换。每个 TField 后代都使用 RTL 中的函数来实现虚拟 GetAsString 方法来执行该表示。按照 TFloatField 示例,此类调用 FloatToStr()为此目的。

综上所述,问题的答案是:如果没有 OnGetText 事件处理程序,AsString 返回与 Text 属性相同的字符串,但如果有事件处理程序或非标准 TField 后代,情况可能会有所不同。

我无法告诉什么更适合您,因为这取决于返回值的预期用途,但如果您使用它在 UI 中向用户显示值(如您的代码示例) ),我建议您使用 DisplayText 属性。

关于delphi - 使用.AsString 还是.Text?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768278/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com