E2010 Inkompatible Typen: '%s' und '%s' (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi) - Index

Diese Fehlermeldung tritt auf, wenn der Compiler zwei Typen als kompatibel miteinander (oder als sehr ähnlich) erwartet hat, sie aber doch unterschiedlich sind.

Generell sollten Sie Ihr Programm sehr gründlich überprüfen, um zu entscheiden, wie Typ-Inkompatibilitäten behoben werden können.

Wenn Sie die folgende Fehlermeldung erhalten:

[DCC Error] Project1.dpr(8): E2010 Incompatible types: 'Integer' and 'Extended'

Der erste Typ in dieser Meldung (Integer) ist der erwartete Typ, und der zweite Typ (Extended) ist der vorhandene Typ. Ein Extended-Typ kann nicht als Integer-Typ verwendet werden.

Dazu ein weiteres Beispiel:

program Produce;
  
  procedure Proc(I: Integer);
  begin
  end;
  
  begin
    Proc( 22 / 7 ); (*Result of / operator is Real*)
  end.

Der Programmierer ist davon ausgegangen, dass der Divisionsoperator /, der in C++ verwendet wird, ein Ergebnis vom Typ Integer liefert – das ist aber in Delphi nicht der Fall.

Hier besteht die Lösung darin, den integralen Divisionsoperator div zu verwenden:

program Solve;
  
  procedure Proc(I: Integer);
  begin
  end;
  
  begin
    Proc( 22 div 7 ); (*The div operator gives result type Integer*)
  end.


Weitere Beispiele:

Siehe auch