|
|
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
1. есть код, который преобразовывает текст из WIN в DOS. Текст располагается в RichEdit1 по всей длине рускими - всё как надо! Зато на бумагу выводится текст каракулями (обратно кодировка WIN). Почему, объясните! Как исправить? TStringList *dd = new TStringList(); char buf[1024]; dd->LoadFromFile("C:\\1.txt"); for(int i=0; i<dd->Count; i++) { OemToChar(dd->Strings .c_str(),buf); RichEdit1->Font->Name="Courier"; RichEdit1->Lines->Add(buf); } RichEdit1->Print("C:\\1.txt"); 2. есть ещё код, который без преобразования WIN->DOS выводит текст на бумагу на русском, но всё в 1 строку! TPrinter *Prntr = Printer(); TextFile txt; TRect r = Rect(1,1,Prntr->PageWidth,Prntr->PageHeight); Prntr->BeginDoc(); Prntr->Canvas->TextOutA(1,1,RichEdit1->Lines->Text); Prntr->EndDoc(); 3. Пробовал ещё перенести текст на другую строку функцией fgets(), но не получается этот кусочек (3) слепить со кусочком (2). FILE *f; char s[50]; if((f=fopen("C:\\1.txt", "rt"))==NULL) { ShowMessage("Неудача"); } fgets(s,80,f); if(feof(f)) break; if(s[strlen(s)-1]=='\n') s[strlen(s)-1]=0; //RichEdit1->Font->Name="Courier"; RichEdit1->Lines->Add(s); } while(true); fclose(f); Подскажите, плз!!!! Как вывести на бумагу текст по всей ширине рус буквами!!! Что исправить или что добавить в коде 1 или 2, или 3 ? Надо очень!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 11:44 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
Вот источник ошибки: RichEdit1->Print("C:\\1.txt"); Ты печатаешь не конвертированый в RichEdit1 текст, а тот же самый оригинальный 1.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:11 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
Пробовал вот так: RichEdit1->Print(RichEdit1->Lines->Text); или RichEdit1->Print(RichEdit1->Text); ошибок не выдает, в RichEdit текст отображается как надо, а на печать вообще ничего не идёт!!! Принтер не срабатывает, т.н. как бы не было команды печатать текст! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:25 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
дед МакарВот источник ошибки: RichEdit1->Print("C:\\1.txt"); Ты печатаешь не конвертированый в RichEdit1 текст, а тот же самый оригинальный 1.txt Print печатает содержимое RichEdit, а параметр - это только название для задания печати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:34 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
Вообще, по хорошему, я так думаю, должно быть так: RichEdit1->Print(dd); Ошибка - разные типы. dd-TStringList, в Print( AnsiString ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:36 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
seeerg_23 Во втором варианте (с TextOut) можно печатать построчно. Д/З - посмотреть в стандартной справке свойства TRichEdit и разобраться, как можно работать с каждой его строчкой отдельно. Пользы будет больше, чем от получения прямого ответа на форуме. Остальным - не подсказывать, разбалуете :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:38 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
а попробуй просто у ричэдита поставить в свойсвах фонта чарсет не по дефолту а руссиан :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:39 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
Подскажите, плз, что сделать, где исправить либо что нужно добавить!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:40 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
1. Почему эта строка ничего не выводит на принтер? Вроде правильно!!! RichEdit1->Print(RichEdit1->Lines->Text); или RichEdit1->Print(RichEdit1->Text); 2. Вот эта строка выводит текст на русском, но текст смещён влево - шрифт как бы не применяется!!! TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight- 200); Prntr->BeginDoc(); for( int i = 0; i < RichEdit1->Lines->Count; i++) Prntr->Canvas->TextOut(200,200 + (i * Prntr->Canvas->TextHeight(RichEdit1->Lines->Strings )), RichEdit1->Lines->Strings); RichEdit1->Font->Name="Courier"; Prntr->EndDoc(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 14:08 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
seeerg_231. Почему эта строка ничего не выводит на принтер? Вроде правильно!!! RichEdit1->Print(RichEdit1->Lines->Text); или RichEdit1->Print(RichEdit1->Text); Справка Обычная aka HelpFormats and prints the contents of the rich edit control. virtual void __fastcall Print(const AnsiString Caption); Description Use Print to print the contents of a rich edit control. The Caption parameter specifies the title that appears in the print manager and on network title pages . seeerg_23 2. Вот эта строка выводит текст на русском, но текст смещён влево - шрифт как бы не применяется!!! TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight- 200); Prntr->BeginDoc(); for( int i = 0; i < RichEdit1->Lines->Count; i++) Prntr->Canvas->TextOut(200,200 + (i * Prntr->Canvas->TextHeight(RichEdit1->Lines->Strings )), RichEdit1->Lines->Strings); RichEdit1->Font->Name="Courier"; Prntr->EndDoc(); Справка Обычная aka HelpWrites a string on the canvas, starting at the point (X,Y), and then updates the PenPos to the end of the string. void __fastcall TextOut(int X, int Y, const AnsiString Text); Description Use TextOut to write a string onto the canvas. The string will be written using the current value of Font. Use the TextExtent method to determine the space occupied by the text in the image. To write only the text that fits within a clipping rectangle, use TextRect instead. After a call to TextOut, the PenPos property indicates the point at the top right of the text on the canvas. При чём тут RichEdit1->Font ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 15:21 |
|
||
|
Помогите с печатью текста.
|
|||
|---|---|---|---|
|
#18+
TStringList *dd = new TStringList(); AnsiString kk; Скажите, есть функция преобоазования типов TStringList к AnsiString и наоборот, чтобы kk=dd; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 16:43 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33922091&tid=2030674]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
196ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 527ms |

| 0 / 0 |
