E2010 '%s' と '%s' には互換性がありません(Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

このエラー メッセージが出力されるのは、2 つの型が互換性がある(または類似している)とコンパイラが予想していたにもかかわらず、それらが異なっていることがわかった場合です。

一般に、プログラムを注意深く調べて、型の非互換性を解決する方法を決める必要があります。

以下のエラー メッセージが出力された場合、

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

このメッセージに示されている 1 つ目の型(Integer)は想定されている型で、2 つ目の型(Extended)は実際に指定された型です。Extended 型を Integer として扱うことはできません。

以下にもう 1 つ例を示します。

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

除算演算子 /(C++ で使用されます)による計算の結果が整数になるとプログラマは思ったようですが、Delphi の場合はそうではありません。

この場合は、整数除算演算子 div を使用すれば、問題は解決します。

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


その他の例としては、以下のものがあります。

関連項目