Показать сообщение отдельно
  #8  
Старый 08.10.2014, 16:11
OSIRIS OSIRIS вне форума
Прохожий
 
Регистрация: 04.01.2008
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
По-нормальному должно быть как-то так:
Код:
procedure TForm1.btnWriteClick(Sender: TObject);
var
  s: string;
begin
  if zRedirect <> nil then
  begin
    s := edInput.Text + sLineBreak;
    if rgCharset.ItemIndex = 1 then
      SetCodePage(s, GetOEMCP, True);
    zRedirect.WriteData(s);
    edInput.Text := '';
  end;
end;

procedure TRedirectThread.WriteData(Data: RawByteString); // переопределил!
var
  Written: Cardinal;
begin
  if hWriteIn <> 0 then
    WriteFile(hWriteIn, Data[1], Length(Data) * StringElementSize(Data), Written, nil);
end;


строка
Код:
SetCodePage(s, GetOEMCP, True);
выдает ошибку
Код:
[DCC Error] Unit1.pas(199): E2033 Types of actual and formal var parameters must be identical

при описании
Код:
var
  s: RawByteStr;
запускается - но результат тот же, ( команда проходит неправильно), мб ошибка где то в отправке а не в кодировке?
Ответить с цитированием