Zitat von
Fridolin Walther:
Auch eine globale Variable möchte ich vermeiden.
Klar, das ist die Dunkle Seite der Macht
Man könnte eine Klasse verwenden, die den Testcode enthält, und auf (strict) private Instanz- oder Klassenvariablen zugreifen kann.
Aufruf wäre dann
if TStringTest.DoSomeTests(SomeWideString) then ...
static class methods werden unter anderem hier beschrieben:
New Delphi language features since Delphi 7
http://edn.embarcadero.com/article/34324
Die Deklaration sollte dann etwa so aussehen:
Delphi-Quellcode:
TStringTest = class
strict private
class var
LastStringTested: WideString;
public
function DoSomeTests(AString: WideString);
end;
Vorteile: auf WRITEABLECONST kann man verzichten, durch Verwendung von
OOP ist die Testfunktionalität sehr leicht und konsistent erweiterbar, Testklassen können auch einfach ausgetauscht werden (z.B. bei Verwendung des Visitor-Patterns), Vererbung kann benutzt werden.