Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

AW: Property einer Klasse als Var-Parameter einer Procedure übergeben

  Alt 8. Mai 2017, 11:30
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;
  Mit Zitat antworten Zitat