Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RichEdit, Постраничная печать. 
:(
    Опции темы
WIN32API
  Дата 2.9.2005, 14:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ребятки, если есть у кого пример, как распечатать (например) первую страницу в двух экземплярах, а вторую в одном из RichEdit за один раз (например, за одно нажатие кнопки) - то бросьте, пожалуйста! Сенкс! Вообще это реально?
  Вверх
WIN32API
Дата 2.9.2005, 20:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня есть добротная процедура печати:

Код

procedure PrintRichEdit(const Cpt: string; const RichEdt: TRichEdit);
var
 Range: TFormatRange;
 LastChar, MaxLen, LogX, LogY, OldMap: Integer;
begin
 FillChar(Range, SizeOf(TFormatRange), 0);
  with Printer, Range do begin
   BeginDoc;
   hdc := Handle;
   hdcTarget := hdc;
   LogX := GetDeviceCaps(Handle, LOGPIXELSX);
   LogY := GetDeviceCaps(Handle, LOGPIXELSY);
    if IsRectEmpty(RichEdt.PageRect) then begin
     rc.right := PageWidth * 1440 div LogX;
     rc.bottom := PageHeight * 1440 div LogY;
    end else begin
     rc.left := RichEdt.PageRect.Left * 1440 div LogX;
     rc.top := RichEdt.PageRect.Top * 1440 div LogY;
     rc.right := RichEdt.PageRect.Right * 1440 div LogX;
     rc.bottom := RichEdt.PageRect.Bottom * 1440 div LogY;
    end;
   rcPage := rc;
   Title := Cpt;
   LastChar := 0;
   MaxLen := RichEdt.GetTextLen;
   chrg.cpMax := -1;
   OldMap := SetMapMode(hdc, MM_TEXT);
   SendMessage(RichEdt.Handle, EM_FORMATRANGE, 0, 0);
    try repeat
     chrg.cpMin := LastChar;
     LastChar := SendMessage(RichEdt.Handle, EM_FORMATRANGE, 1, Longint(@Range));
      if (LastChar < MaxLen) and (LastChar <> -1) then NewPage;
    until (LastChar >= MaxLen) or (LastChar = -1);
   EndDoc;
  finally
   SendMessage(RichEdt.Handle, EM_FORMATRANGE, 0, 0);
   SetMapMode(hdc, OldMap);
  end;
 end;
end;


Помогите сдесь реализовать такую ерунду.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.