【问题标题】:IntToStr undeclared identifier errorIntToStr 未声明的标识符错误
【发布时间】:2013-01-22 17:00:01
【问题描述】:

我想在备忘录、列表框等中显示某些整数。我尝试过备忘录、列表框和 showmessage(),但每个都会引发字符串和整数之间的不兼容错误。

这是开始出错的地方:

Memo1.Lines.Add('Physical Functioning: '+PhysFunc div PhysCount);

PhysFunc 和 PhysCount 是进一步向上计算的整数。我试过了,例如:

Memo1.Lines.Add('Physical Functioning: '+IntToStr(PhysFunc div PhysCount));

和:

Memo1.Lines.Add(IntToStr('Physical Functioning: '+PhysFunc div PhysCount));

和:

Memo1.Lines.Add(('Physical Functioning: '+PhysFunc div PhysCount).AsString);

ListBox 和 showmessage() 也是如此。但没有一个工作。 IntToStr 返回 E2003 未声明的标识符并且 .AsString 返回错误,整数不包含成员“AsString”。有其他选择吗?

我在 Delphi 中使用 SDI 应用程序 - 这可能是问题吗?

谢谢

【问题讨论】:

  • IntToStr 在SysUtils 单元中声明,只需将其添加到您的uses 子句中即可。
  • @CosminPrund 问题似乎与不兼容有关。所以,我假设他已经声明了 SysUtils 单元。或者是他在创建项目/单元时预先声明的。
  • Memo1.Lines.Add('物理函数:'+IntToStr(PhysFunc div PhysCount));这个必须工作!

标签: delphi


【解决方案1】:

您正在调用TStrings 的Add 方法,该方法接收string 类型的单个参数。您需要连接一个字符串和一个整数。为此,您必须将整数转换为字符串。

您尝试使用IntToStr 来做到这一点,这是一种非常合理的方法。但这失败了,因为编译器找不到IntToStr。现在,IntToStr 在SysUtils 单元中声明,因此您必须将该单元添加到您的uses 子句中。

但是,我可能会在这里使用Format。与IntToStr 一样,此函数在SysUtils 中声明,您必须使用它。

Memo1.Lines.Add(Format('Physical Functioning: %d', [PhysFunc div PhysCount]));

有关格式的更多详细信息,请阅读format strings 的文档。

【讨论】:

    【解决方案2】:

    第一行代码不起作用,因为 PhysFunc div PhysCount 是一个整数,它没有转换为字符串。

    第二行代码应该可以工作,但我会检查 PhysFunc 和 PhysCount 的实际值。 PhysCount 是否有可能以某种方式等于 0?

    第三行代码不起作用,因为 IntToStr 需要整数,而你给了他一个字符串等。

    第四行代码不起作用,因为正如您所说,整数不包含成员'AsString'

    你也说过:

    IntToStr 返回 E2003 未声明的标识符

    这也可能是问题所在:两个变量之一未声明。确保它们都在 var 部分中声明。

    总结:

    1. 检查是否声明了两个变量;
    2. 检查评估时是否 PhysCount 0。

    祝你好运!

    【讨论】:

    • "integer does not contain a member 'AsString'" - XE3 引入了一个名为“record helpers”的新功能,它允许为内在类型(如整数和字符串)实现 helper 类。因此,可以创建一个自定义的 helper for Integer 类型来实现 AsString() 方法(或您想要的任何其他方法)。
    • 我不知道 :) 谢谢。
    【解决方案3】:

    如果包含SysUtils,请查看用途。

    【讨论】:

    • 那如何回答这个问题?请解释一下。
    猜你喜欢
    • 1970-01-01
    • 2013-03-12
    • 2011-10-25
    • 2011-02-15
    • 1970-01-01
    • 2011-04-16
    • 2011-04-16
    • 2010-12-24
    • 2023-03-04
    相关资源
    最近更新 更多