From 2b51a191695fdb6c448182e672c591645f4c31b8 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Tue, 9 Apr 2013 14:56:07 +0000 Subject: [PATCH] Overloaded NamedFormat with FormatSettings parameter --- X2UtNamedFormat.pas | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/X2UtNamedFormat.pas b/X2UtNamedFormat.pas index 6fde1c8..149b9e4 100644 --- a/X2UtNamedFormat.pas +++ b/X2UtNamedFormat.pas @@ -10,7 +10,8 @@ unit X2UtNamedFormat; interface uses - Classes; + Classes, + SysUtils; type @@ -28,7 +29,7 @@ type <>, eg: %:s %:.2d - + AParams contains alternating the parameter name and it's value. @@ -37,12 +38,16 @@ type be affected by named specifiers! It is strongly recommended to name all specifiers. } - function NamedFormat(const AFormat: String; AParams: array of const): String; + function NamedFormat(const AFormat: String; AParams: array of const; AFormatSettings: TFormatSettings): String; overload; + function NamedFormat(const AFormat: String; AParams: array of const): String; overload; + - implementation uses - SysUtils; + Windows; + + +{$I X2UtCompilerVersion.inc} type @@ -92,7 +97,21 @@ begin end; -function NamedFormat(const AFormat: String; AParams: array of const): String; +function NamedFormat(const AFormat: String; AParams: array of const): String; overload; +var + formatSettings: TFormatSettings; + +begin + {$IFDEF DXE2PLUS} + formatSettings := TFormatSettings.Create; + {$ELSE} + GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formatSettings); + {$ENDIF} + Result := NamedFormat(AFormat, AParams, formatSettings); +end; + + +function NamedFormat(const AFormat: String; AParams: array of const; AFormatSettings: TFormatSettings): String; var currentPos: PChar; formatEnd: PChar; @@ -195,7 +214,8 @@ begin end; try - Result := Format(formatString, paramValues); + + Result := Format(formatString, paramValues, AFormatSettings); except on E:EConvertError do begin