Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2011, 06:15   #1
pusik
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 29
По умолчанию Вывод на печать.

procedure TForm6.Button4Click(Sender: TObject);
begin
PrinterSetupDialog1.Execute;
end;

procedure TForm6.Button5Click(Sender: TObject);
var
i, start, stop: integer;
begin
PrintDialog1.Options:=[poPageNums,poSelection];
PrintDialog1.FromPage:=1;
PrintDialog1.ToPage:=PageControl1.P ageCount;
PrintDialog1.MinPage:=1;
PrintDialog1.MaxPage:=PageControl1. PageCount;
if not PrintDialog1.Execute then Exit;
if PrintDialog1.PrintRange=prAllPages
then
begin
Start:=PrintDialog1.MinPage-1;
Stop:=PrintDialog1.MaxPage-1;
end
else // если выбрано отличное от 'Print All'
if PrintDialog1.PrintRange=prSelection
then
begin
Start:=PageControl1.ActivePageIndex ;
Stop:=Start;
end
else // если выбрано отличное от 'Выделенный фрагмент'
begin
Start:=PrintDialog1.FromPage-1;
Stop:=PrintDialog1.ToPage-1;
end;
// начало печати
Printer.BeginDoc;
for i:=start to stop do
begin
PageControl1.Pages[i].PaintTo(Printer.Handle,10,10);
if i<>stop
then Printer.NewPage;
end;
Printer.EndDoc;
end;

procedure TForm6.Button3Click(Sender: TObject);
begin
close;
end;

procedure TForm6.Button1Click(Sender: TObject);
// Печать содержимого редактора c помощью свойства Printer.Canvas
var
Y,dY,X,k: Integer;
S: String;
begin
if Memo1.lines.count=0 then Exit;
Screen.Cursor := crHourGlass;
with Printer do
begin
BeginDoc;
with Canvas do
begin
Font := Memo1.Font;
dY := TextHeight('1'); // Определяем высоту строки
Y := 3*dY; // Отступ от верхнего края листа
X := PageWidth div 15; // Отступ от левого края
for k := 0 to Memo1.Lines.Count-1 do
begin
// Выводим очередную строку
TextOut(X,Y,Memo1.Lines[k]);
// Смещаемся на следующую строку листа
inc(Y,dY);
if PageHeight-Y<2*dY then // Нижний край листа?
begin // Да
NewPage; // Переход на новый лист
// Выводим номер страницы посередине листа:
S := '- '+IntToStr(PageNumber)+' -';
TextOut((PageWidth-TextWidth(S)) div 2, dy, S);
// и отчеркиваем его от текста:
MoveTo(X, 3*dy div 2);
LineTo(PageWidth-X, 9*dy div 4);
// Ордината первой строки:
Y := 3*dY
end; // if PageHeight-Y<2*dY
end; // for k := 0 to Memo1.Lines.Count-1 do
end; // with Canvas do
EndDoc;
end; // with Printer do
Screen.Cursor := crDefault;
end;

В двух словах. Мне вместо мемо1 нужно вывести на печать таблицу с другой формы.
Таблица отображается в dbgrid. c помощью Adoquery.
pusik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод на печать ferrum88 Помощь студентам 2 12.11.2010 08:25
Вывод данных на печать Дикий ангел Помощь студентам 4 14.04.2010 14:13
Вывод на печать((( oD1k Помощь студентам 3 02.12.2009 20:28
Вывод на печать sali_s Microsoft Office Excel 2 04.06.2008 12:05
Вывод на печать -=<[Evklidd]>=- Общие вопросы Delphi 6 22.02.2008 19:56