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

Форум программистов: 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 сообщение ] 


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

Зарегистрированные пользователи: нет зарегистрированных пользователей


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

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