→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Продолжение печати на следующему листке из StringGrid 
Автор Сообщение
Начинающий

Регистрация: 12.12.2011
Сообщения: 1
Языки:

Репутация: 0 [ ? ]
Сообщение Продолжение печати на следующему листке из StringGrid
возникла проблема что печатает только первую страницу данных что в StringGrid. как сделать чтобы продолжало печатать уже на следующем листе





procedure PrintGrid(sGrid: TStringGrid;
left_StandOff,top_StandOff:integer; sTitle: string);
var
X1, X2,PixelsX,PrinterCoordX: Integer;
Y1, Y2,PixelsY,PrinterCoordY: Integer;
I: Integer;
F: Integer;
TR: TRect;
begin

//получаем информацию о разрешении принтера
PixelsX:=GetDeviceCaps(printer.Handle,LogPixelsX);//разрешение по Х
PixelsY:=GetDeviceCaps(printer.Handle,LogPixelsY);//разрешение по Y
PrinterCoordX:=round(PixelsX/92.0*left_StandOff);//переводим мм в пиксели
PrinterCoordY:=round(PixelsY/94.4*top_StandOff); //---
with printer do
begin
//Печатаем заголовок таблицы
Title := sTitle;
BeginDoc; // Начало печати
Canvas.Pen.Color := 0; // цвет-чёрный
Canvas.Font.Name := 'verdana'; // шрифт
Canvas.Font.Size := 10; // размер шрифта
Canvas.Font.Style := [];
//Текс заголовка в заданных координатах
Canvas.TextOut(PrinterCoordX, PrinterCoordY-100-
printer.Canvas.Font.Size*10, Printer.Title);
Canvas.Pen.Color := 0;
Canvas.Font.Name := 'Verdana';
Canvas.Font.Size := 8;
end;
for i:=0 to sgrid.colcount-1 do //перебираем столбцы
for f:=0 to sgrid.rowcount-1 do //перебираем в столбце все строки
begin
X1 := PrinterCoordX+i*400; //300-это ширина столбца
X2 := PrinterCoordX+400+i*400; //тоже
Y1:=PrinterCoordY+f*100; //150-высота строки
y2:=PrinterCoordY+100+f*100; //тоже
TR:=Rect(x1,y1,x2,y2);
with printer do
begin
Canvas.MoveTo(x1,y1);//Двигаем рисовалку в верхний левый угол таблицы
{пишем надпись в квадрате(ячейке) i-столбеца и f-строки со сдвигом
от верха на Y+50 и со сдвигом от левого края колонки на X+50
}
Canvas.TextRect(TR, X1 + 20, Y1 + 50, sGrid.Cells[i,f]);
//рисуем линии ячейки
Canvas.LineTo(x1,y2);
Canvas.LineTo(x2,y2);
Canvas.LineTo(x2,y1);
Canvas.LineTo(x1,y1);
end;
end;
Printer.EndDoc; // конец печати
end;


procedure TForm7.Button1Click(Sender: TObject);
begin
PrintGrid(StringGrid1,10,15, 'Внутрішній облік товарів: "База"');
end;
end.


12.12.2011 16:40
Профиль Отправить email
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
© 2013 «Форум программистов Украины»