Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#23

AW: Zwei Funktionen mit dem selben Namen?

  Alt 24. Jun 2022, 00:42
Stattdessen kann man alles auch in ein Objekt/MethodenRecord verpacken
auch einen Parameter-Record/Objekt erstellen und hat dann bloß einen einzigen Parameter.
Dank der neuen Custom Managed Records wird es damit auch immer einfacher.


Delphi-Quellcode:
type
  TLIParams = record // oder als TObject (dann aber das Create/Free nicht vergessen)
    Worte: Integer;
    Absatz: Integer;
    UsePre: Boolean;
    Variante: TLoremIpsumVariant;
    Punktierung: Boolean;
    Kommata: Boolean;

    class operator Initialize(out Dest: TLIParam); // wird automatisch bei neuen Variablen aufgerufen
    //oder ein manuelles "procedure Clear;"
  end;
 
function MakeLoremIpsum(Params: TLIParams): String;
Im Clear/Initialize alle "Parameter" auf 0/False setzen.


Delphi-Quellcode:
type
  TLoremIpsum = record // oder als TObject (dann aber das Create/Free nicht vergessen)
    Worte: Integer;
    Absatz: Integer;
    UsePre: Boolean;
    Variante: TLoremIpsumVariant;
    Punktierung: Boolean;
    Kommata: Boolean;

    class operator Initialize(out Dest: TLIParam); // wird automatisch bei neuen Variablen aufgerufen
    //oder ein manuelles "procedure Clear;"

    function Make: String;
  end;
Delphi-Quellcode:
{ function CreateLoremIpsum(aWorte: Integer; aUsePre: Boolean): String; }
var LI: TLoremIpsum;
// LI.Clear; oder automatisch durch Initialize erstmal alles auf 0 setzen lassen.
// Früher auch gern mit einem FillChar(LI, SizeOf(LI), 0);
LI.Worte := 123;
LI.UsePre := True;
ShowMessage(LI.Make);
Delphi-Quellcode:
type
  TLoremIpsum = record // oder als TObject (dann aber das Create/Free nicht vergessen)
    Worte: Integer;
    Absatz: Integer;
    UsePre: Boolean;
    Variante: TLoremIpsumVariant;
    Punktierung: Boolean;
    Kommata: Boolean;

    DerText: String;

    class operator Initialize(out Dest: TLIParam); // wird automatisch bei neuen Variablen aufgerufen
    //oder ein manuelles "procedure Clear;"

    procedure Make; // Result siehe DerText
  end;
$2B or not $2B
  Mit Zitat antworten Zitat