W1013 定数 0 が NIL に変換されました (Delphi)
エラーと警告のメッセージ(Delphi) への移動
Delphi コンパイラでは,ポインタ表現の部分で nil のかわりに定数 0 を使用できます。これにより,RTL の変更を気にせずに古いコードをコンパイルすることができます。
program Produce; procedure p0(p : Pointer); begin end; begin p0(0); end.
この例では,手続き p0 は定数 0 が渡されますがパラメータ Pointer をとるように宣言されています。コンパイラは内部的に必要な変換を行い,0 を nil に変更します。そのため,コードはコンパイルも実行もできます。
program Solve; procedure p0(p : Pointer); begin end; begin p0(NIL); end.
この問題の解決方法は 2 つあります。上記の例では,定数 0 を nil と入れ替えています。または,手続き定義を変更し,パラメータを整数型と指定し直す方法もあります。