надо из 8.2 через COM порт печатать на принтере custom vkp 80 с кодировкой cp866. Взял исходник компоненты vk rs232, Дописал функцию
function AnsiToOem(aStr : String) : String;
begin
Result := '';
if Length(aStr) > 0 then begin
SetLength(Result, Length(aStr));
CharToOem(PChar(aStr), PChar(Result));
end;
end;
и добавил свойство convert.
if p_Convert = 1 then begin
s := AnsiToOem(s);
end;
То есть конвертируем или посылаем как есть..
Если посылаю строку "блаблабла" - все ок, конвертирует в cp866 и выводит кириллицу. Если посылаю строку - управляющую команду символ(29) + символ(227) - туда приходит какая-то фигня вне зависимости от свойства конверт.
Если посылаю Символ(29) + "г" - все работает как надо. Как такое может быть?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший