E2264 Impossible d'avoir les résolutions de méthodes pour l'interface '%s' (Object Pascal)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Object Pascal) - Index

Vous avez essayé d'utiliser une clause de résolution de méthode sur une interface nommée dans une clause implements.


program Produce;
type
  I0 = interface
    procedure i0p0(a : char);
  end;

  T0 = class(TInterfacedObject, I0)
    procedure I0.i0p0 = proc0;
    function getter : I0;
    procedure proc0(a : char);
    property p0 : I0 read getter implements I0;
  end;

procedure T0.proc0(a : char);
begin
end;

function T0.getter : I0;
begin
end;
end.


Dans cet exemple, la méthode proc0 est mappée sur la procédure d'interface i0p0, mais comme l'interface est citée dans une clause implements, le changement de nom est interdit.


program Solve;
type
  I0 = interface
    procedure i0p0(a : char);
  end;

  T0 = class(TInterfacedObject, I0)
    function getter : I0;
    procedure i0p0(a : char);
    property p0 : I0 read getter implements I0;
  end;

procedure T0.i0p0(a : char);
begin
end;

function T0.getter : I0;
begin
end;
end.


La solution de ce problème est de supprimer la "clause de résolution de nom". Pour faire cela simplement, donnez à la procédure de la classe le même nom qu'à la méthode d'interface.