E2267 La déclaration précédente de '%s' n'a pas été marquée de la directive 'overload' (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Il y a deux façons de résoudre ce problème. Vous pouvez supprimer la tentative de surcharge ou signaler la déclaration originale par la directive overload. L'exemple ci-dessus marque la déclaration originale.
program Produce; type Base = class procedure func(a : integer); procedure func(a : char); overload; end; procedure Base.func(a : integer); begin end; procedure Base.func(a : char); begin end; end.
Cet exemple tente de surcharger la version char de func sans signaler que la première version de func peut être surchargée.
Vous devez signaler toutes les fonctions pouvant être surchargées par la directive overload. Si overload n'était pas nécessaire pour toutes les versions, il est possible d'introduire une nouvelle méthode surchargeant une méthode existante, et ensuite une simple recompilation du source pourra produire un autre comportement.
program Solve; type Base = class procedure func(a : integer); overload; procedure func(a : char); overload; end; procedure Base.func(a : integer); begin end; procedure Base.func(a : char); begin end; end.