Delphi Record Helpers för uppsättningar (och andra enkla typer)

Förstå Delphi Class (and Record) Hjälpare introducerar en funktion i Delphi-språket som gör att du kan utöka definitionen av en klass eller en posttyp genom att lägga till funktioner och procedurer (metoder) till befintliga klasser och poster utan arv.

I XE3 Delphi-versionen blev rekordhjälpare kraftigare genom att tillåta att utöka enkla Delphi-typer som strängar, heltal, enums, uppsättningar och lika.

System.SysUtils-enheten, från Delphi XE3, implementerar en post med namnet "TStringHelper" som faktiskt är en rekordhjälper för strängar.

Med hjälp av Delphi XE3 kan du sammanställa och använda nästa kod:

var s: sträng; Börja s: = 'Delphi XE3'; ersätt ('XE3', 'regler', []). ToUpper; slutet; 

För att detta skulle vara möjligt gjordes en ny konstruktion i Delphi "skivhjälpare för [enkel typ]". För strängar är detta "typ TStringHelper = record helper for string". Namnet säger "rekordhjälpare" men det handlar inte om att utöka poster - snarare om att utöka enkla typer som strängar, heltal och lika.

I System och System.SysUtils finns det andra fördefinierade rekordhjälpare för enkla typer, inklusive: TSingleHelper, TDoubleHelper, TExtendedHelper, TGuidHelper (och några andra). Du kan få från namnet vilken enkel typ hjälperen utökar.

Det finns också några praktiska open source-hjälpare, som TDateTimeHelper.

Uppräkningar? Hjälpare för uppräkningar?

uppsättningar uppsättningar

Uppräkningar och uppsättningar som behandlas som enkla typer kan också nu (i XE3 och senare) utvidgas med funktionalitet som en posttyp kan ha: funktioner, procedurer och lika.

Här är en enkel uppräkning ("TDay") och en rekordhjälpare: