Author: Jonas Bilinkevicius
How to detect the regional settings of a system
Answer:
Here is some sample code to get the language's abbreviated name, e.g.: ENU.
1 { ... }
2 var
3 Buffer: PChar;
4 Size: integer;
5 begin
6 Size := GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, nil, 0);
7 GetMem(Buffer, Size);
8 try
9 GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, Buffer, Size);
10 Result := string(Buffer);
11 finally
12 FreeMem(Buffer);
13 end;
14 end;
This code gets the current Currency Symbol from Windows' regional settings:
15 function GetCurrencySymbol: string;
16 var
17 Res: Cardinal;
18 begin
19 Res := GetLocaleInfo(GetUserDefaultLCID, LOCALE_SCURRENCY, nil, 0);
20 SetLength(Result, Res);
21 Res := GetLocaleInfo(GetUserDefaultLCID, LOCALE_SMONDECIMALSEP, PChar(Result),
22 Res);
23 if Res = 0 then
24 RaiseLastOSError;
25 end;
|