E2018 レコード,オブジェクトまたはクラスのいずれかが必要です (Delphi)
エラーと警告のメッセージ(Delphi) への移動
コンパイラはレコード,オブジェクト,クラスのいずれかを指定した型名を予期していましたが,見つかりませんでした。
program Produce; type RecordDesc = class ch : Char; end; var pCh : PChar; r : RecordDesc; procedure A; begin pCh.ch := 'A'; (* ケース 1 *) with pCh do begin (* ケース 2 *) end; end; end.
{ このプログラムには同じエラーに 2 つ原因がある。1 つはレコードでないオブジェクトへの「.」の適用である。2 番めの例は with 文の中に誤った型の変数を使用している }
program Solve; type RecordDesc = class ch : Char; end; var r : RecordDesc; procedure A; begin r.ch := 'A'; (* ケース 1 *) with r do begin (* ケース 2 *) end; end; end.
{ このエラーはピリオド「.」と with をどちらも必ずレコード,オブジェクト,クラス変数のいずれかにのみ適用するようにすれば簡単に解決する }