.. ein String in Delphi >= 2009 ist ein UnicodeString
Mach daraus einen AnsiString dann wird auch S[i] ein AnsiChar sein.
Nachtrag:
Delphi-Quellcode:
procedure TCustomxyz.FToggleStrCase(var S : AnsiString);
var
i : integer;
len : integer;
//a : string[1];
//b : string[1];
a : AnsiChar;
b : AnsiChar;
begin
len := Length(S);
i := 1;
while i <= len do
begin
{...}
b := S[i];
a := AnsiUpperCase(b);
if a = b then
S[i] := AnsiLowerCase(b)[1]
else
S[i] := a[1];
inc(i);
end;
end;
Grüße
Klaus