System.SysUtils.TFormatSettings
Delphi
TFormatSettings = record
public
type
TEraInfo = record
EraName: string;
EraOffset: Integer;
EraStart: TDate;
EraEnd: TDate;
end;
strict private
{$IF defined(MSWINDOWS) OR defined(USE_LIBICU) OR defined(LINUX)}
class procedure GetDayNames(Locale: TLocaleID; var AFormatSettings: TFormatSettings); static;
class procedure GetMonthNames(Locale: TLocaleID; var AFormatSettings: TFormatSettings); static;
class procedure GetEraInformation(Locale: TLocaleID; var AFormatSettings: TFormatSettings); static;
{$IF defined(MSWINDOWS) OR defined(LINUX)}
class function GetString(Locale: TLocaleID; LocaleItem, DefaultIndex: Integer;
const DefaultValues: array of Pointer): string; static;
{$ENDIF defined(MSWINDOWS) OR defined(LINUX)}
{$ELSEIF defined(MACOS)}
class procedure GetEraInformation(Locale: TLocaleID; Formatter: CFDateFormatterRef; var AFormatSettings: TFormatSettings); static;
class procedure GetDayNames(Formatter: CFDateFormatterRef; var AFormatSettings: TFormatSettings); static;
class procedure GetMonthNames(Formatter: CFDateFormatterRef; var AFormatSettings: TFormatSettings); static;
{$ENDIF}
class function TranslateDateFormat(Locale: TLocaleID; LocaleType: Integer;
const Default: string; const Separator: Char): string; static;
private
class function AdjustLocaleName(const LocaleName: string; const ACharSet: string = ''): string; static;
public
CurrencyString: string;
CurrencyFormat: Byte;
CurrencyDecimals: Byte;
DateSeparator: Char;
TimeSeparator: Char;
ListSeparator: Char;
ShortDateFormat: string;
LongDateFormat: string;
TimeAMString: string;
TimePMString: string;
ShortTimeFormat: string;
LongTimeFormat: string;
ShortMonthNames: array[1..12] of string;
LongMonthNames: array[1..12] of string;
ShortDayNames: array[1..7] of string;
LongDayNames: array[1..7] of string;
EraInfo: array of TEraInfo;
ThousandSeparator: Char;
DecimalSeparator: Char;
TwoDigitYearCenturyWindow: Word;
NegCurrFormat: Byte;
NormalizedLocaleName: string;
class function Create: TFormatSettings; overload; static; inline;
class function Create(Locale: TLocaleID): TFormatSettings; overload; platform; static;
class function Create(const LocaleName: string): TFormatSettings; overload; static;
class function Invariant: TFormatSettings; static;
function GetEraYearOffset(const Name: string): Integer;
end;
C++
struct DECLSPEC_DRECORD TFormatSettings
{
public:
struct DECLSPEC_DRECORD TEraInfo
{
public:
System::UnicodeString EraName;
int EraOffset;
System::TDate EraStart;
System::TDate EraEnd;
};
private:
typedef System::StaticArray<System::UnicodeString, 12> _TFormatSettings__1;
typedef System::StaticArray<System::UnicodeString, 12> _TFormatSettings__2;
typedef System::StaticArray<System::UnicodeString, 7> _TFormatSettings__3;
typedef System::StaticArray<System::UnicodeString, 7> _TFormatSettings__4;
typedef System::DynamicArray<TEraInfo> _TFormatSettings__5;
private:
static void __fastcall GetDayNames(unsigned Locale, TFormatSettings &AFormatSettings);
static void __fastcall GetMonthNames(unsigned Locale, TFormatSettings &AFormatSettings);
static void __fastcall GetEraInformation(unsigned Locale, TFormatSettings &AFormatSettings);
static System::UnicodeString __fastcall GetString(unsigned Locale, int LocaleItem, int DefaultIndex, void * const *DefaultValues, const int DefaultValues_High);
static System::UnicodeString __fastcall TranslateDateFormat(unsigned Locale, int LocaleType, const System::UnicodeString Default, const System::WideChar Separator);
private:
static System::UnicodeString __fastcall AdjustLocaleName(const System::UnicodeString LocaleName, const System::UnicodeString ACharSet = System::UnicodeString());
public:
System::UnicodeString CurrencyString;
System::Byte CurrencyFormat;
System::Byte CurrencyDecimals;
System::WideChar DateSeparator;
System::WideChar TimeSeparator;
System::WideChar ListSeparator;
System::UnicodeString ShortDateFormat;
System::UnicodeString LongDateFormat;
System::UnicodeString TimeAMString;
System::UnicodeString TimePMString;
System::UnicodeString ShortTimeFormat;
System::UnicodeString LongTimeFormat;
_TFormatSettings__1 ShortMonthNames;
_TFormatSettings__2 LongMonthNames;
_TFormatSettings__3 ShortDayNames;
_TFormatSettings__4 LongDayNames;
_TFormatSettings__5 EraInfo;
System::WideChar ThousandSeparator;
System::WideChar DecimalSeparator;
System::Word TwoDigitYearCenturyWindow;
System::Byte NegCurrFormat;
System::UnicodeString NormalizedLocaleName;
static TFormatSettings __fastcall Create()/* overload */;
static TFormatSettings __fastcall Create(unsigned Locale)/* overload */;
static TFormatSettings __fastcall Create(const System::UnicodeString LocaleName)/* overload */;
static TFormatSettings __fastcall Invariant();
int __fastcall GetEraYearOffset(const System::UnicodeString Name);
};
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
record struct |
public | System.SysUtils.pas System.SysUtils.hpp |
System.SysUtils | System.SysUtils |
Description
TFormatSettings defines a thread-safe string formatting context.
TFormatSettings defines a data structure containing locale information used by the string formatting routine. Each member of TFormatSettings is equivalent to the global variable with the same name. A variable of type TFormatSettings defines a thread-safe context that formatting functions can use in place of the default global context, which is not thread-safe.
To create and use the thread-safe environment defined by TFormatSettings, follow these steps:
- Declare a variable of type TFormatSettings.
- Call TFormatSettings.Create to populate the TFormatSettings variable with locale information.
- Pass the TFormatSettings variable as the last parameter of the string formatting routine.
Each routine that accepts a TFormatSettings parameter is thread-safe, and is an overload of an equivalent function that refers to the global formatting variables.