Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

schreibender Zugriff auf private Variablen ?

  Alt 6. Nov 2007, 15:50
Hallo,

ich habe ein kleines Problem. Ich müsste eine private Variable ändern (von außen) Das ist normalerweise nicht möglich und auch nicht gewollt. Kennt jemand einen dirty hack um das trotzdem zu machen?

Beisp:
Delphi-Quellcode:
unit Unit1;

interface

uses
  SysUtils;

type
  TmyTest = class(TObject)
  private
    sTest: string;
  public
    constructor Create;
    function getTest: string;
  end;

implementation

{$R *.dfm}

{ TmyTest }

constructor TmyTest.Create;
begin
  sTest := IntToStr(Random(100));
end;

function TmyTest.getTest: string;
begin
  Result := sTest;
end;

end.
Ich möchte nun in der Unit2 schreibend auf sTest zugreifen.

Aber ich kann Unit1 nicht ändern !!!

Wäre sTest protected, wäre es kein Problem.
Innerhalb der selben Unit kann ich auf sTest zugreifen, aber das bringt mir nix.
Class Helper bringt mich auch nicht weiter, da er ja auch von "außen" zugreift.

Delphi-Quellcode:
unit Unit2;

interface

uses
  SysUtils, Unit1;

type

type
  TmyTestHelper = class helper for TmyTest
    procedure setTest(s: string);
  end;

implementation

{$R *.dfm}

{ TmyTestHelper }

procedure TmyTestHelper.setTest(s: string);
begin
  // hier gibt es leider keinen schreibenden Zugriff auf sTest
end;

end.
Hat jemand eine Idee?
(vieleicht mit Code Beisp. , evtl mit RTTI?)
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat