インどのようにすることができますい通貨のデータを掲載しているタイプの異なる通貨と異なる形態?

StackOverflow https://stackoverflow.com/questions/86002

  •  01-07-2019
  •  | 
  •  

質問

私は書く必要があるデルファイアプリを引くの応募から様々なテーブルデータベースは、異なる応募の異なる通貨によるものです。このように、必要なものは別の小数点以下の桁数と異なる通貨の文字ごと通貨データタイプ($,ポンド、ユーロ等)によっては通貨項目の私はみなされます。

があるので、変更の通貨のほとんどは世界中には、すべての通貨データ表示されます。

役に立ちましたか?

解決

でも同じ通貨で表示値と異なる形式(セパレータのためのインスタンス)をお勧めします准ロケールの代わりに、通貨のみのお値です。
利用できる単純な整数の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;

他のヒント

思利用SysUtils.CurrToStr(設定値:通貨;var FormatSettings:TFormatSettings):文字列;

私の設定の配列TFormatSettings、各位置の設定に反映する各通貨のご応募対応しています。必要な設定は以下の分野においてTFormat設定のための各配列の位置:CurrencyString,CurrencyFormat,NegCurrFormat,ThousandSeparator,DecimalSeparatorとCurrencyDecimals.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top