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.
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: