【发布时间】:2015-04-14 08:04:54
【问题描述】:
我有一个非常奇怪的错误,我尝试重新启动我的 IDE,但它没有修复它。
我创建了一个如下所示的界面:
myInterface = interface
['{delphi guid key here}'] (CTRL+ALT+G)
function getDataPCE : IDataPCE;
property dataPCE : IDataPCE read getDataPCE;
(some other properties that works)
end;
然后我创建了继承自这个接口的对象
myObject = class(TInterfacedObject, myInterface)
private
...
function getDataPCE : IDataPCE;
...
public
...
property dataPCE : IDataPCE read getDataPCE;
...
end;
“...”表示其他一些属性和功能,但与此无关。
我收到此错误:“不兼容的类型”
我该如何解决这个问题?
编辑
IInfoNotisReservation = interface
['{AE5CEC31-B2CE-4A3D-9CFE-6393646E4A04}']
function getNumberPCE : String;
function getDataPCE(numRegister : String; numPCEFormated : String): IRioPiece;
procedure setNumberPCE(NumberPCE: String);
function getRegName : String;
procedure setRegName(RegName: String);
function getRegKey : String;
procedure setRegKey(RegKey: String);
property NumberPCE : String read getNumberPCE write setNumberPCE;
property RegName : String read getRegName write setRegName;
property RegKey : String read getRegKey write setRegKey;
property DataPCE : IRioPiece read getDataPCE;
end;
type
TInfoNotisReservation = class(TInterfacedObject, IInfoNotisReservation)
private
DataBase : IDataBase;
SuperRio : ISuperRio;
RioN : IRio;
fPCENum : String;
function getDataPCE(numRegister : String; numPCEFormated : String): IRioPiece;
function getNumberPCE: string;
function getRegKey: string;
function getRegName: string;
procedure setNumberPCE(NumberPCE: string);
procedure setRegKey(RegKey: string);
procedure setRegName(RegName: string);
procedure setRioN(Registre: string);
public
Constructor Create;
property DataPCE : IRioPiece read getDataPCE;
property NumberPCE : String read getNumberPCE write setNumberPCE;
property RegName : String read getRegName write setRegName;
property RegKey : String read getRegKey write setRegKey;
end;
function TInfoNotisReservation.getDataPCE(numRegister,
numPCEFormated: String): IRioPiece;
begin
setRioN(numRegister);
Result := RioN.GetPieceByID(RioN.PieceNumberToID(NumPCEFormated).Item[0].ID, FLAG_IGNORE_SECURITY);
end;
【问题讨论】:
-
问题中的代码编译得很好。请提供一个 MCVE 来证明您的问题。就目前而言,这个问题将作为题外话关闭,因为问题中的代码没有展示您报告的问题。
-
你到底想要什么?我不明白为什么它说不兼容的类型。这里有我用于此实现的所有内容...
-
请提供演示问题的 MCVE。问题中的代码不会产生您报告的错误。哦,还有一件事。始终逐字报告错误消息,并始终指出它们发生的行。
-
我的 IDE 表明问题出现在我的接口声明中的属性行。它突出显示“属性 DataPCE:IDataPCE 读取 getDataPCE;”带有消息不兼容的类型。如您所见,我的 getDataPCE 返回相同的类型
-
@CiucaS 不,我们不想要所有代码。我们只需要足够的代码来演示问题。所以我们希望将代码减少到最小的复制。但我们也想要可以编译的代码。
标签: delphi