怎样在程序中读取系统中设置的国家?

解决方案 »

  1.   

    procedure GetLocaleFormatSettings(LCID: Integer;
      var FormatSettings: TFormatSettings);
    var
      HourFormat, TimePrefix, TimePostfix: string;
      DefaultLCID: Integer;
    begin
      if IsValidLocale(LCID, LCID_INSTALLED) then
        DefaultLCID := LCID
      else
        DefaultLCID := GetThreadLocale;  GetLocaleMonthDayNames(LCID, FormatSettings);
      with FormatSettings do
      begin
        CurrencyString := GetLocaleStr(DefaultLCID, LOCALE_SCURRENCY, '');
        CurrencyFormat := StrToIntDef(GetLocaleStr(DefaultLCID, LOCALE_ICURRENCY, '0'), 0);
        NegCurrFormat := StrToIntDef(GetLocaleStr(DefaultLCID, LOCALE_INEGCURR, '0'), 0);
        ThousandSeparator := GetLocaleChar(DefaultLCID, LOCALE_STHOUSAND, ',');
        DecimalSeparator := GetLocaleChar(DefaultLCID, LOCALE_SDECIMAL, '.');
        CurrencyDecimals := StrToIntDef(GetLocaleStr(DefaultLCID, LOCALE_ICURRDIGITS, '0'), 0);
        DateSeparator := GetLocaleChar(DefaultLCID, LOCALE_SDATE, '/');
        ShortDateFormat := TranslateDateFormat(GetLocaleStr(DefaultLCID, LOCALE_SSHORTDATE, 'm/d/yy'));
        LongDateFormat := TranslateDateFormat(GetLocaleStr(DefaultLCID, LOCALE_SLONGDATE, 'mmmm d, yyyy'));
        TimeSeparator := GetLocaleChar(DefaultLCID, LOCALE_STIME, ':');
        TimeAMString := GetLocaleStr(DefaultLCID, LOCALE_S1159, 'am');
        TimePMString := GetLocaleStr(DefaultLCID, LOCALE_S2359, 'pm');
        TimePrefix := '';
        TimePostfix := '';
        if StrToIntDef(GetLocaleStr(DefaultLCID, LOCALE_ITLZERO, '0'), 0) = 0 then
          HourFormat := 'h' else
          HourFormat := 'hh';
        if StrToIntDef(GetLocaleStr(DefaultLCID, LOCALE_ITIME, '0'), 0) = 0 then
          if StrToIntDef(GetLocaleStr(DefaultLCID, LOCALE_ITIMEMARKPOSN, '0'), 0) = 0 then
            TimePostfix := ' AMPM'
          else
            TimePrefix := 'AMPM ';
        ShortTimeFormat := TimePrefix + HourFormat + ':mm' + TimePostfix;
        LongTimeFormat := TimePrefix + HourFormat + ':mm:ss' + TimePostfix;
        ListSeparator := GetLocaleChar(DefaultLCID, LOCALE_SLIST, ',');
      end;
    end;
      

  2.   

    CurrencyString := GetLocaleStr(DefaultLCID, LOCALE_SCURRENCY, '');  {$EXTERNALSYM LOCALE_ICOUNTRY}
      LOCALE_ICOUNTRY                 = $00000005;   { country code }
      {$EXTERNALSYM LOCALE_SCOUNTRY}
      LOCALE_SCOUNTRY                 = $00000006;   { localized name of country }
      {$EXTERNALSYM LOCALE_SENGCOUNTRY}
      LOCALE_SENGCOUNTRY              = $00001002;   { English name of country }
      {$EXTERNALSYM LOCALE_SABBREVCTRYNAME}
      LOCALE_SABBREVCTRYNAME          = $00000007;   { abbreviated country name }
      {$EXTERNALSYM LOCALE_SNATIVECTRYNAME}
      LOCALE_SNATIVECTRYNAME          = $00000008;   { native name of country }