Подскажите, плиз, почему не работает ни "неправильный вариант" в 1 пункте, ни Эта либа. Русский текст показывает только с такой функцией:
function ansi(str : string) : string;
var {rus_ansi to unicode}
s : string;
i,c : integer;
begin
s := '';
for i := 0 to length(str)-1 do
begin
c := ord(getChar(str,i)) and 255;
if (c>=192) then c := c+(1040-192) else
if (c<32) and (c<>10) then c := 32;
s := s+chr(c);
end;
ansi := s;
end;