Einzelnen Beitrag anzeigen

Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#10

AW: Firemonkey TUpper funktioniert nicht mit 'ß'!

  Alt 5. Jun 2014, 14: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;
  Mit Zitat antworten Zitat