E2076 このメソッドの呼び方はクラスメソッドの場合に限られます (Delphi)
エラーと警告のメッセージ(Delphi) への移動
インスタンスでなくクラス型を指定するだけで通常のメソッドを呼び出そうとしました。
それができるのはクラスメソッドとコンストラクタの場合だけで,通常のメソッドとデストラクタの場合はできません。
program Produce; type TMyClass = class (*...*) end; var MyClass: TMyClass; begin MyClass := TMyClass.Create; (*これでよい。コンストラクタ*) Writeln(TMyClass.ClassName); (*これでよい。クラスメソッド*) TMyClass.Destroy; (*<-- ここでエラーメッセージ*) end.
{ このコードは TMyClass 型そのものを破棄しようとしている }
program Solve; type TMyClass = class (*...*) end; var MyClass: TMyClass; begin MyClass := TMyClass.Create; (*これでよい。コンストラクタ*) Writeln(TMyClass.ClassName); (*これでよい。クラスメソッド*) MyClass.Destroy; (*これでよい。インスタンスに対して呼び出される*) end.
{ 実際には型そのものでなく型のインスタンスを破棄しなくてはならない }