Registriert seit: 21. Jul 2010
74 Beiträge
Delphi 2 Desktop
|
AW: Firemonkey TUpper funktioniert nicht mit 'ß'!
5. Jun 2014, 15:18
Füge am Anfang Deiner Unit die Funktionen hinzu:
Code:
function LowerCase(const S: string): string;
begin
Result := System.SysUtils.AnsiLowerCase(S);
end;
function UpperCase(const S: string): string;
begin
Result := System.SysUtils.AnsiUpperCase(S);
end;
Danke aber es passiert auch intern beim TabItem vom TabControl, weil Android das automatisch groß darstellt.
Fehler passiert in System.SysUtils
Code:
function TStringHelper.ToUpper(LocaleID: TLocaleID): string;
{$IF defined(MSWINDOWS)}
begin
Result := Self;
if Result <> '' then
begin
UniqueString(Result);
if LCMapString(LocaleID, LCMAP_UPPERCASE or LCMAP_LINGUISTIC_CASING, PChar(Self), Self.Length,
PChar(Result), Result.Length) = 0 then
RaiseLastOSError;
end;
end;
{$ELSEIF defined(USE_LIBICU)}
var
SelfLen: Integer;
ResLen: Integer;
ErrorCode: UErrorCode;
begin
SelfLen := Self.Length;
if SelfLen > 0 then
begin
ErrorCode := U_ZERO_ERROR;
SetLength(Result, SelfLen);
ResLen := u_strToUpper(PChar(Result), SelfLen, PChar(Self), SelfLen, LocaleID, ErrorCode);
if (ErrorCode > U_ZERO_ERROR) then
begin
SetLength(Result, ResLen);
ResLen := u_strToUpper(PChar(Result), ResLen, PChar(Self), SelfLen, LocaleID, ErrorCode); // hier bleibt er stehen
if (ErrorCode > U_ZERO_ERROR) then
raise EOverflow.CreateFmt(SICUErrorOverflow, [Int32(ErrorCode), UTF8ToString(u_errorName(ErrorCode)), ResLen]); // Meldung
end;
end
else Result := Self;
end;
|
|
Zitat
|