Registriert seit: 1. Feb 2018
3.691 Beiträge
Delphi 11 Alexandria
|
AW: GetLocaleInfo() Aufruf, ist es so richtig?
2. Apr 2018, 21:03
Könnte man Dein Beispiel auch so abändern oder ginge dabei wieder etwas schief?
Delphi-Quellcode:
function ThousandSeparator : String;
const
Default = ','; // Bei Fehler ein Default Wert nutzen um Meldungen zu überspringen
var
Buffer: PChar;
BufferLen: Integer;
begin
BufferLen := GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STHOUSAND, nil, 0);
if (BufferLen = 0) then
begin
Result := Default;
System.SetLastError(ERROR_SUCCESS);
Exit;
// RaiseLastOSError;
end;
Buffer := StrAlloc(BufferLen);
if (not Assigned(Buffer)) then
begin
Result := Default;
System.SetLastError(ERROR_SUCCESS);
Exit;
// raise EOutOfMemory.Create('StrAlloc failed');
end;
try
if (GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STHOUSAND, Buffer, BufferLen) <> BufferLen) then
begin
Result := Default;
if Assigned(Buffer) then StrDispose(Buffer);
System.SetLastError(ERROR_SUCCESS);
Exit;
// RaiseLastOSError;
end;
Result := StrPas(Buffer);
finally
StrDispose(Buffer);
end;
end;
|
|
Zitat
|