У меня действительно странная ошибка, я попытался перезапустить мою среду разработки, но не исправил ее.Delphi несовместимые типы
Я создал интерфейс, который выглядит следующим образом:
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;
«...» означает, что некоторые другие свойства и функции, но не связанные с этим.
И я получаю эту ошибку: «Несовместимые типы»
Как я могу решить эту проблему?
EDIT
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, который демонстрирует проблему. Код в вопросе не создает ошибку, о которой вы сообщаете. О, и еще одно. Всегда сообщайте сообщения об ошибках дословно и всегда указывайте строку, по которой они происходят. –