- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚看到了他们使用的一些代码(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/
我读过一篇博客文章(目前我找不到链接),其中作者说分配局部变量比使用 ADOQuery.FieldByName('...').asString 或更快TSQLQuery.FieldByName('..
我刚刚看到了他们使用的一些代码(D5)... aStr:=tblAcct.FieldByName('Name').Text; 它似乎工作正常,但我一直使用...... aStr:=tblAcct.Fi
我正在使用Delphi XE2。我的代码从 SQL-Server 2008 R2 数据库中提取数据。返回的数据是一个包含 1,055,227 字节数据的 nvarchar(max) 字段。我使用以下代
我正在尝试简单地访问端点并使用 asString() 方法获取响应主体和 HttpResponse。代码可以编译,但在运行时会出错,说没有这样的方法错误。 我将 Unirest 导入到我的 Maven
我正在开发一个包含大量表单的大型项目,使用 BDE 和 ODBC 连接到 MySQL 数据库。 我可以在 Delphi 2009 中编译它并且工作正常。当我在 Delphi 2010 中编译它时,没有
我的情况如下:有一些类 MyList 稍后可能会得到特定的实现。目前,像 std::vector 这样的行为是可以的。 但是,我确实需要一种简单的方法来对其调用某种 asString()/toStri
当我们将数据库组件从 ODBC Express 交换到 ADO 时,我们遇到的最大问题之一是 ODBC Express“右修剪”了 CHAR 字段的结果,而 ADO 没有。 CHAR 字段填满了它们的
本文整理了Java中com.ibm.wala.util.warnings.Warnings.asString()方法的一些代码示例,展示了Warnings.asString()的具体用法。这些代码示例
本文整理了Java中org.apache.drill.yarn.zk.ZKClusterCoordinatorDriver.asString()方法的一些代码示例,展示了ZKClusterCoordi
给定以下案例类LogMessage: import io.circe.{Decoder, Encoder} import io.circe.generic.semiauto.{deriveDecode
我正在尝试编写一个 AsString() 函数,根据我的喜好将 STL 容器转换为字符串。这是我到目前为止提出的代码: template inline string AsString(const T&
我有一个 simpleIntegerProperty 表示以秒为单位的数量,我想以 hh:mm:ss 格式表示。 我想通过将 Label textProperty 绑定(bind)到 simpleIn
我有一个 simpleIntegerProperty 表示以秒为单位的数量,我想以 hh:mm:ss 格式表示。 我想通过将 Label textProperty 绑定(bind)到 simpleIn
当 TQuery 后代字段的 FieldType 是 ftBoolean 时,如何让 Delphi 7 返回“0”或“1”?默认情况下返回“TRUE”或“FALSE”,即 Query1.Fields[
我正在创建一个简单的控件来浏览和采样音频文件。我想使用ObjectProperty这样我就可以绑定(bind)负责播放文件的按钮的一些属性: PlayButton.disableProperty.bi
好的,我有一个类旨在管理 Azure 云队列消息,插入工作正常: public async void Insert(string message) { await Qu
我是一名优秀的程序员,十分优秀!