相关疑难解决方法(0)

如何使用类助手访问类的严格私有成员?

这是一个后续问题:如何隐藏对象的受保护过程?
(我对整个班助手概念有点模糊)

假设我有一个类:

type 
TShy = class(TObject) 
strict private
  procedure TopSecret;
private
  procedure DirtyLaundry;  
protected 
  procedure ResistantToChange;
end; 
Run Code Online (Sandbox Code Playgroud)

我知道如果我通过在同一单元中添加一个后代类来获得源代码,我可以访问私有方法.

我有两个问题:
- 如何使用班助手访问strict private会员?
- 我可以在一个单独的单元中使用类助手来访问(严格)私有成员吗?

delphi class-helpers

28
推荐指数
2
解决办法
6028
查看次数

如何从Delphi 10.1 Berlin中的类助手访问私有字段?

我想使用Gabriel Corneanu的jpegex,jpeg.TJPEGImage的类助手.阅读这个这个,我了解到,超过德尔福西雅图你不能访问私有字段不再像jpegex确实(在下面的例子中FDATA).和David Heffernan提出的VMT一样,远远超出我的范围.有没有更简单的方法来完成这项工作?

   type
  // helper to access TJPEGData fields
  TJPEGDataHelper = class helper for TJPEGData
    function  Data: TCustomMemoryStream; inline;
    procedure SetData(D: TCustomMemoryStream);
    procedure SetSize(W,H: integer);
  end;

// TJPEGDataHelper
function TJPEGDataHelper.Data: TCustomMemoryStream;
begin
  Result := self.FData;
end;
Run Code Online (Sandbox Code Playgroud)

delphi class-helpers delphi-10.1-berlin

10
推荐指数
3
解决办法
4221
查看次数

如何在TMemIniFile上对章节进行排序

我使用TMemIniFile来存储配置,我需要按照alpha顺序对这些部分进行排序.

为此,我创建了TMemIniFile的后代

  TRWStudioMemIniFile = class(TMemIniFile)
  public
    procedure UpdateFile; override;
    procedure GetSortedStrings(List: TStrings);
  end;


{ TRWStudioMemIniFile }

procedure TRWStudioMemIniFile.GetSortedStrings(List: TStrings);
var
  I, J: Integer;
  Strings: TStrings;
begin
  List.BeginUpdate;
  try
    Sections.Sort;
    for I := 0 to Sections.Count - 1 do
    begin
      List.Add('[' + Sections[I] + ']');
      Strings := TStrings(Sections.Objects[I]);
      for J := 0 to Strings.Count - 1 do List.Add(Strings[J]);
      List.Add('');
    end;
  finally
    List.EndUpdate;
  end;
end;

procedure TRWStudioMemIniFile.UpdateFile;
var
  List: TStringList;
begin
  List := TStringList.Create;
  try
    GetSortedStrings(List);
    List.SaveToFile(FileName, Encoding);
  finally
    List.Free;
  end;
end; …
Run Code Online (Sandbox Code Playgroud)

delphi oop delphi-10.1-berlin

-2
推荐指数
1
解决办法
319
查看次数

标签 统计

delphi ×3

class-helpers ×2

delphi-10.1-berlin ×2

oop ×1