arrays - 在 Delphi 中传递类型数组的参数

标签 arrays delphi class types

我试图将一个数组从一个类传递到我在 Delphi 中的主程序中。我在数据类型方面遇到了一些麻烦,并且在网上搜索了一个小时没有发现任何帮助我。听起来有点奇怪,但答案越复杂越好(这是针对大学项目的)。

我有一个连接到 SQL 的类,它将 SQL 查询读入记录类型声明的数组中(抱歉,如果现在有点困惑):

Type TScout = Record
SNum, FName, SName, Gender, Address, HomeNum, MobNum,
SEmail, STel, Hikes, Nights, Med, Diet : String;
DoB, DoJ : String;
End;

Type TScoutArray = Array of TScout;

Type TScoutSQL = Class
Public
  Procedure InitSQL;
  Procedure GetRecords;
  Function SendRecords : TScoutArray;
Private
  ScoutsArray : TScoutArray;
  ScoutConnection : TSQLConnection;
  ScoutQuery : TSQLQuery;
End;

所以整个“函数 SendRecords : TScoutArray;”不起作用,因为另一方面我有相同的 2 种类型(TScout 和 TScoutArray)声明完全相同,我调用该函数:
  ScoutArray := ScoutSQL.SendRecords;

我得到:
[Error] MembersUnit.pas(51): Incompatible types

任何人都可以帮忙吗?

最佳答案

我怀疑您的问题是您在单独的单元中两次声明这些类型。这样做会导致不同的、不兼容的类型。

您需要做的是:

  • 仅在接口(interface)部分声明一个单元的类型(例如单元 A)。
  • 在另一个想要使用这些类型的单元(例如单元 B)中,您添加单元 Auses条款。
  • 关于arrays - 在 Delphi 中传递类型数组的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998613/

    相关文章:

    class - Maven fatal error 编译 : directory not found: maven-compiler-plugin

    ios - 如何在数组中插入不同类型的元素

    javascript - 如何将 DOM 数据转换为 json

    delphi - 调用TObject.GetInterface自由对象

    delphi - 在 Excel 中插入一行

    python - 在另一个类中构建一个类

    C:用字符串数组初始化结构

    arrays - 在 Swift 4 中使用 decodable 访问嵌入式 JSON

    delphi - 如何使用参数调用 TEvent 的简单示例

    javascript - 使用jquery根据span标签中的文本写入ID