Although the core focus of Delphi XE4 is clearly on iOS development, there are some nice features for all of the platforms, including Win32. One of these features is the support for more intrinsic type helpers, like the TStringHelper for the string type that was introduced in Delphi XE3. Delphi XE4 adds quite a few helpers for native language data types, like Integers and Doubles.

Here is a screen shot of the editor with some slightly unusual Delphi code (although the same could be obtained in Delphi XE3 adding a custom helper):

And here is the list of the intrinsic type helpers, available in the SyUtils unit:

SysUtils.pas(3352): TGuidHelper = record helper for TGUID
SysUtils.pas(3856): TStringHelper = record helper for string
SysUtils.pas(3984): TSingleHelper = record helper for Single
SysUtils.pas(4048): TDoubleHelper = record helper for Double
SysUtils.pas(4112): TExtendedHelper = record helper for Extended
SysUtils.pas(4176): TByteHelper = record helper for Byte
SysUtils.pas(4198): TShortIntHelper = record helper for ShortInt
SysUtils.pas(4220): TSmallIntHelper = record helper for SmallInt
SysUtils.pas(4242): TWordHelper = record helper for Word
SysUtils.pas(4264): TCardinalHelper = record helper for Cardinal { for LongWord type too }
SysUtils.pas(4286): TIntegerHelper = record helper for Integer { for LongInt type too }
SysUtils.pas(4308): TInt64Helper = record helper for Int64
SysUtils.pas(4330): TUInt64Helper = record helper for UInt64
SysUtils.pas(4352): TNativeIntHelper = record helper for NativeInt
SysUtils.pas(4379): TNativeUIntHelper = record helper for NativeUInt
SysUtils.pas(4405): TBooleanHelper = record helper for Boolean
SysUtils.pas(4416): TByteBoolHelper = record helper for ByteBool
SysUtils.pas(4427): TWordBoolHelper = record helper for WordBool
SysUtils.pas(4438): TLongBoolHelper = record helper for LongBool

Notice that while you can replace these helpers with your own, there is no way to extend them with extra methods. Replacing the default helpers is not really suggested, although it is clearly possible. A workaround is to introduce a new name for one of these data types, and add a helper for the new "clone" type. In general, we consider intrinsic helpers as a low-level feature, subject to future implementation changes.