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?)