Tengo la siguiente interface declarada en una unit:
Código:
use personas
interface
type
Tllave = array[0..31] of byte;
Tdatos = array of byte;
ImyInterface = interface(IInterface)
function nombre : string;
function edad : integer;
procedure resetear;
function Proceso(datos : tdatos; cantidad : integer) : integer ;
procedure Iniciar(llave : Tllave);
end;
....
En otra unit tengo la declaracion de mi objeto que utilizara la interface ya definida:
Código:
use militares
interface
uses personas;
type
Tmilitares = Class(TInterfacedObject, ImyInterface )
public
function nombre : string;
function edad : integer;
procedure resetear;
function Proceso(datos : Tdatos; cantidad : integer) : integer ;
procedure Iniciar(llave : Tllave);
published
constructor create;
end;
implementation
function tmilitares.Proceso(datos : tdatos; cantidad : integer) : integer ; // error aqui !!
begin
// ....
end;
procedure tmilitares.Iniciar(llave : Tllave); // error aqui !!
begin
// ....
end;
El error arrojado es:
declaration of 'Iniciar' differs from previous declaration y
declaration of 'Proceso' differs from previous declaration. Como he podido observar, este error solo me sucede con los procedimientos y funciones que utilizan una definicion de tipos especiales en los parametros (arreglos), despues en las otras funciones que estan declaradas no hay ningun problema, solo con estas dos. El mensaje de error me habla que difieren las declaraciones con la definicion que esta en el objeto mas arriba, pero no veo ninguna diferencia.
Creo que no es la forma correcta de declarar estas funciones o procedimiento cuando tienen arreglos definidos en sus parametros, pero no encuentro ninguna informacion que me oriente.