访问受保护的财产

Rah*_*jaj 4 delphi

我有一个派生自Tobject的类.在我的课堂上,我想使用受保护的控制属性.这是我的代码

    type
    THack = class(Tcontrol);

    TMyClass = class(TObject)
    private
      A: string;
      B: string;
      C: string;
      D: string;
    public
      procedure DoSomthing(MyForm: TForm);
    end;

  procedure TMyClass.DoSomthing(MyForm: TForm);
  var
    I: Integer;
  begin
    for I := 0 to MyForm.ControlCount - 1 do
    begin
      // I want to read Font property
      showmessage(inttostr(THack(MyForm.Controls[I]).Font.Size));
   end; 
  end;
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以访问受保护的属性

Dav*_*nan 6

我所知道的可以执行此任务的选项是:

  1. 经典的受保护黑客在问题中得到证明.
  2. 新款RTTI.
  3. 一个班助手.

  • @RahulBajaj很难给出这样的一般建议.有时您可能更喜欢使用经典的黑客攻击,有时代码可能会更加清晰.助手也有缺点.代码中的任何给定点都只能激活一个.这取决于你决定如何做到这一点. (2认同)