Maks150988
Не работает, потому что 'А' и 'Я' - ето AnsiChar; замените на #$0410 и #$042F.
Но имейте ввиду, что такой алгоритм не работает с другие символы, напр. "ё".
Вообще, вот как сделано в SysUtils:
Код: function WideLowerCase(const S: WideString): WideString;
var
Len: Integer;
begin
Len := Length(S);
SetString(Result, PWideChar(S), Len);
if Len > 0 then CharLowerBuffW(Pointer(Result), Len);
end;
Не работает, потому что 'А' и 'Я' - ето AnsiChar; замените на #$0410 и #$042F.
Но имейте ввиду, что такой алгоритм не работает с другие символы, напр. "ё".
Вообще, вот как сделано в SysUtils:
Код: function WideLowerCase(const S: WideString): WideString;
var
Len: Integer;
begin
Len := Length(S);
SetString(Result, PWideChar(S), Len);
if Len > 0 then CharLowerBuffW(Pointer(Result), Len);
end;