E2233 プロパティ '%s' はここからは参照できません (Delphi)

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

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

クラス参照型を通してプロパティにアクセスしようとしています。クラスのフィールドまたはプロパティには,クラス参照ではアクセスできません。


program Produce;

  type
    TBase = class
    public
      FX : Integer;
      property X : Integer read FX write FX;
    end;

    TBaseClass = class of TBase;

  var
    BaseRef : TBaseClass;
    x : Integer;

begin
  BaseRef := TBase;
  x := BaseRef.X;
end.

{ ここでは,プロパティ X にアクセスしようとしているのでエラーとなる }


program Solve;

  type
    TBase = class
    public
      FX : Integer;
      property X : Integer read FX write FX;
    end;

    TBaseClass = class of TBase;

  var
    BaseRef : TBaseClass;
    x : Integer;

begin
  BaseRef := TBase;
end.

{ この場合,ソースコードから問題のプロパティアクセスを削除する以外の解決策はない。クラスのプロパティまたはフィールドにアクセスするには,そのクラス型のインスタンス変数を作成し,その変数を通してアクセスを行わなければならない }