jupp ruft 2*LängeDesStrings CharToStr und eine der Stringfunktionen(Lower/Upper) auf und diese Funktionen sind alle nicht unbedingt schnell.
Aber das langsamste ist hier eigentlich dieses interne CharToStr (Result[i] ist ja ein Char und Upper-/LowerCase wollen einen String, also muß erst ein String erstellt werden)
Code:
// Satty67's Funktion
function SwitchUpperLower(Str: String): String;
var
i : Integer;
begin
Result := Str;
for i := 1 to Length(Result) do
if UpperCase([b]CharToStr[/b](Result[i])) = Result[i] then
Result[i] := LowerCase([b]CharToStr[/b](Result[i]))[1]
else
Result[i] := UpperCase([b]CharToStr[/b](Result[i]))[1];
end;
OK, das ist also nicht unbedingt schnell, aber vom Prinzip her isses nicht falsch und es funktioniert immerhin