Ich spinne einfach mal ein bisserl rum.
Würde sowas in der Art eine für Dich (sinngemäß) nutzbare Alternative sein?
(ungetestet hingedaddelt, nur so als Idee.)
Delphi-Quellcode:
Type
tCheckString = record
Error : Integer;
Value : String;
end;
function TTestForm.AssignTheValue(aDescription:string; aString1: String; aString2: String): tCheckString;
begin
if aString1 < aString2 then begin
Result.Error := -1;
Result.Value := aString2;
WriteToLog(Format('%s: %s < %s',[aDescription, aString1, aString2]));
end else
if aString1 > aString2 then begin
Result.Error := 1;
Result.Value := aString2;
WriteToLog(Format('%s: %s > %s',[aDescription, aString1, aString2]));
end else begin
Result.Error := 0;
Result.Value := aString1;
WriteToLog(Format('%s: %s = %s',[aDescription, aString1, aString2]));
end;
end;
// Aufruf ungefähr sowas:
var
CheckString : tCheckString;
begin
// Gibt beim Aufruf dann statt eines Einzeilers immer 'nen Zweizeiler,
// aber weniger Aufwand als eine annähernd unüberschaubare Anzahl von Überladungen.
CheckString := AssignTheValue('Beschreibung', Edit1.Text, 'Vorgabestring');
if CheckString.Error <> 0 then Edit1.Text := CheckString.Value;
// Oder so, wenn im Quelltext keine Auswertung von Error notwendig sein sollte.
Edit1.Text := AssignTheValue('Beschreibung', Edit1.Text, 'Vorgabestring').Value;
end;