E2010 Types incompatibles - '%s' et '%s' (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Ce message d'erreur est émis lorsque le compilateur s'attend à ce que deux types soient compatibles (c'est-à-dire semblables) mais qu'ils s'avèrent différents.
En principe, vous devez examiner attentivement votre programme pour décider comment résoudre les incompatibilités de type.
Si vous recevez le message d'erreur suivant :
[DCC Error] Project1.dpr(8): E2010 Incompatible types: 'Integer' and 'Extended'
Le premier type de ce message (Integer
) est le type attendu, et le deuxième type (Extended
) est le type qui a été donné. Un type Extended
ne peut pas être adapté à un Integer
.
Voici un autre exemple :
program Produce;
procedure Proc(I: Integer);
begin
end;
begin
Proc( 22 / 7 ); (*Result of / operator is Real*)
end.
Le programmeur a pensé que l'opérateur de division /
qui est utilisé en C++ lui donnerait un résultat entier, mais ce n'est pas le cas en Delphi.
La solution dans ce cas est d'utiliser l'opérateur de division entière div
:
program Solve;
procedure Proc(I: Integer);
begin
end;
begin
Proc( 22 div 7 ); (*The div operator gives result type Integer*)
end.
Voici d'autres exemples :
- Définition de la directive du compilateur {$T+} avec un pointeur incompatible avec ^Integer
- Génériques : Object<T1> incompatible avec TObject<T2>