E2250 Aucune version surchargée de '%s' ne peut être appelée avec ces arguments (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Une tentative d'appel à une fonction surchargée ne peut pas être résolue avec l'ensemble actuel de surcharges.


program Produce;

procedure f0(a : integer); overload;
begin
end;

procedure f0(a : char); overload;
begin
end;

begin
  f0(1.2);
end.


La procédure surchargée f0 a deux versions : une qui prend un char et l'autre qui prend un integer. Cependant, l'appel à f0 utilise un type virgule flottante, ce que le compilateur ne peut résoudre ni avec un char ni avec un integer.


program Solve;

procedure f0(a : integer); overload;
begin
end;

procedure f0(a : char); overload;
begin
end;

begin
  f0(1);
end.

Vous pouvez résoudre ce problème de deux manières : soit fournir un type de paramètre pouvant être résolu pour correspondre à une procédure surchargée, soit créer une nouvelle version de la procédure surchargée qui corresponde au type du paramètre.

Dans l'exemple ci-dessus, le type du paramètre a été modifié pour correspondre à une des deux versions surchargées actuelles de f0.