E2140 Index de méthode de message dupliqué (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Vous avez spécifié un index pour une méthode dynamique déjà utilisé par une autre méthode dynamique.
program Produce; type Base = class procedure First(VAR x : Integer); message 151; procedure Second(VAR x : Integer); message 151; end; procedure Base.First(VAR x : Integer); begin end; procedure Base.Second(VAR x : Integer); begin end; begin end.
La déclaration de 'Second' essaie de réutiliser le même index de message que celui utilisé par 'First'; ce qui est incorrect.
program Solve; type Base = class procedure First(VAR x : Integer); message 151; procedure Second(VAR x : Integer); message 152; (*change pour un index unique*) end; Derived = class (Base) procedure First(VAR x : Integer); override; (*remplace le comportement de la classe de base*) end; procedure Base.First(VAR x : Integer); begin end; procedure Base.Second(VAR x : Integer); begin end; procedure Derived.First(VAR x : Integer); begin end; begin end.
Il existe deux solutions directes à ce problème. D'abord, si vous n'avez pas vraiment besoin d'utiliser la même valeur de message, vous pouvez changer le numéro de message pour qu'il soit unique. Vous pouvez aussi dériver une nouvelle classe d'une classe de base et redéfinir le comportement du gestionnaire de message déclaré dans la classe de base. Ces deux options se trouvent dans l'exemple précédent.