我试图将一个数组从一个类传递到我在 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
任何人都可以帮忙吗?
最佳答案
我怀疑您的问题是您在单独的单元中两次声明这些类型。这样做会导致不同的、不兼容的类型。
您需要做的是:
A
到uses
条款。 关于arrays - 在 Delphi 中传递类型数组的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998613/