E2089 Transtypage de classe incorrect (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

Ce message d'erreur est émis pour des transtypages non autorisés par les règles. Les types suivants de transtypages sont autorisés :

- Un type ordinal ou pointeur en un autre type ordinal ou pointeur

- Un caractère, une chaîne, un tableau de caractères ou pchar en une chaîne

- Un ordinal, un réel, une chaîne ou un variant en un variant

- Un variant en un ordinal, un réel, une chaîne ou un variant

- Une référence à une variable en n'importe quel type de la même taille.

Notez que le transtypage des types réels en entiers peut s'effectuer avec les fonctions standard Trunc et Round.

Il existe d'autres fonctions de transfert telles que Ord et Chr, qui peuvent clarifier votre intention.



program Produce;

begin
  Writeln( Integer(Pi) );
end.

Ce programmeur a pensé qu'il pourrait transtyper une constante virgule flottante en Integer, comme dans C.



program Solve;

begin
  Writeln( Trunc(Pi) );
end.

En langage Delphi, nous avons des fonctions Transfer séparées pour convertir les valeurs virgule flottante en entiers.