我需要编写一个Delphi应用程序,从数据库中的各个表中提取条目,不同的条目将使用不同的货币.因此,我需要为每种货币数据类型($,Pounds,Euros等)显示不同数量的小数位和不同的货币字符,具体取决于我加载的商品的货币.
有没有办法几乎全局改变货币,也就是说,表格中显示的所有货币数据?
解决方法
即使使用相同的货币,您也可能必须使用不同的格式显示值(例如分隔符),因此我建议您仅将LOCALE与货币相关联而不是货币.
您可以使用简单的Integer来保存LCID(区域设置ID).
请参阅此处的列表: http://msdn.microsoft.com/en-us/library/0h88fahh.aspx
您可以使用简单的Integer来保存LCID(区域设置ID).
请参阅此处的列表: http://msdn.microsoft.com/en-us/library/0h88fahh.aspx
function CurrFormatFromLCID(const AValue: Currency; const LCID: Integer = LOCALE_SYSTEM_DEFAULT): string; var AFormatSettings: TFormatSettings; begin GetLocaleFormatSettings(LCID,AFormatSettings); Result := CurrToStrF(AValue,ffCurrency,AFormatSettings.CurrencyDecimals,AFormatSettings); end; function USCurrFormat(const AValue: Currency): string; begin Result := CurrFormatFromLCID(AValue,1033); //1033 = US_LCID end; function FrenchCurrFormat(const AValue: Currency): string; begin Result := CurrFormatFromLCID(AValue,1036); //1036 = French_LCID end; procedure TestIt; var val: Currency; begin val:=1234.56; ShowMessage('US: ' + USCurrFormat(val)); ShowMessage('FR: ' + FrenchCurrFormat(val)); ShowMessage('GB: ' + CurrFormatFromLCID(val,2057)); // 2057 = GB_LCID ShowMessage('def: ' + CurrFormatFromLCID(val)); end;