Delphi Record Helpers para conjuntos (y otros tipos simples)

Comprender los ayudantes de clase (y registro) de Delphi presenta una característica del lenguaje Delphi que le permite extender la definición de una clase o un tipo de registro agregando funciones y procedimientos (métodos) a las clases y registros existentes sin herencia.

En la versión XE3 Delphi, los ayudantes de grabación se volvieron más poderosos al permitir extender tipos Delphi simples como cadenas, enteros, enumeraciones, conjuntos y similares.

La unidad System.SysUtils, de Delphi XE3, implementa un registro llamado "TStringHelper" que en realidad es un asistente de registro para cadenas.

Usando Delphi XE3 puedes compilar y usar el siguiente código:

var s: cadena; empezar s: = 'Delphi XE3'; s.Replace ('XE3', 'rules', []). ToUpper; final; 

Para que esto sea posible, se realizó una nueva construcción en Delphi "record helper for [simple type]". Para cadenas, este es "tipo TStringHelper = ayudante de registro para cadena". El nombre indica "asistente de registro", pero no se trata de extender registros, sino de extender tipos simples como cadenas, enteros y similares..

En System y System.SysUtils hay otros ayudantes de registro predefinidos para tipos simples, que incluyen: TSingleHelper, TDoubleHelper, TExtendedHelper, TGuidHelper (y algunos otros). Puedes obtener del nombre qué tipo simple extiende el ayudante.

También hay algunos útiles ayudantes de código abierto, como TDateTimeHelper.

Enumeraciones? Ayudante para enumeraciones?

conjuntos de enumeraciones

Las enumeraciones y los conjuntos que se tratan como tipos simples ahora también se pueden ampliar (en XE3 y más allá) con la funcionalidad que puede tener un tipo de registro: funciones, procedimientos y similares..

Aquí hay una enumeración simple ("TDay") y un asistente de registro: