IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Проблема с кодировкой при печати, С++ Builder 6
Neon6868
сообщение 22.08.2009 13:43
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Необходимо при нажатии кнопки распечатать текст, находящийся в окне Memo. Проблема в том, что текст этот в кодировке DOS.
После распечатывания таким способом
   int lines_kol = Memo1->Lines->Count;
TPrinter *Prntr = Printer();
TRect r = TRect(200, 200, Prntr->PageWidth - 200, Prntr->PageHeight - 200);
Prntr->BeginDoc();
Prntr->Canvas->TextRect(r, 200, 200,Memo1->Lines->Text);
Prntr->EndDoc();

вместо русских букв печатаются иероглифы.

Пробую изменить кодировку текста, но после запуска программы вылетает непонятная ошибка. Подскажите из-за чего она возникает.
void __fastcall TForm1::Button3Click(TObject *Sender)
{
int lines_kol = Memo1->Lines->Count;
TPrinter *Prntr = Printer();
TRect r = TRect(200, 200, Prntr->PageWidth - 200, Prntr->PageHeight - 200);
Prntr->BeginDoc();
for(int i = 0; i < lines_kol; i++)
{
char *newstr;
AnsiString st=Memo1->Lines->Strings[i];
OemToChar(st.c_str(),newstr);
Prntr->Canvas->TextRect(r, 200, 200,AnsiString(newstr));

}
Prntr->EndDoc();
}



Сообщение отредактировано: Neon6868 - 22.08.2009 13:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.07.2025 22:16
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"