E2138 メッセージのパラメータが間違っています (Delphi)
エラーと警告のメッセージ(Delphi):インデックス への移動
メッセージ処理メソッドは var パラメータを 1 つだけとれます。パラメータの型はチェックされません。
program Produce; type Base = class procedure Msg1(x : Integer); message 151; procedure Msg2(VAR x, y : Integer); message 152; end; procedure Base.Msg1(x : Integer); begin end; procedure Base.Msg2(VAR x, y : Integer); begin end; begin end.
{ 最初の例ではパラメータが var でないのが明らかなエラーである。2 番めの例では複数のパラメータを宣言したのがエラーである }
program Solve; type Base = class procedure Msg1(VAR x : Integer); message 151; procedure Msg2(VAR y : Integer); message 152; end; procedure Base.Msg1(VAR x : Integer); begin end; procedure Base.Msg2(VAR y : Integer); begin end; begin end.
{ どちらの場合もメッセージメソッドの宣言で var パラメータを 1 つだけ指定して解決した }