Показать сообщение отдельно
  #3  
Старый 31.08.2007, 13:08
STOROJ STOROJ вне форума
Прохожий
 
Регистрация: 31.08.2007
Сообщения: 2
Репутация: 10
По умолчанию

вощем добавил в код:
procedure TForm2.Button1Click(Sender: TObject);
Код:
var
X1,X2,Y1,Y2:integer;
 i, start, stop: integer;
 PointsX,PointsY:double;
begin
 PrintDialog1.Options:=[poPageNums,poSelection];
 PrintDialog1.FromPage:=1;
 PrintDialog1.ToPage:=PageControl1.PageCount;
 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;
 Printer.Canvas.Refresh;
 PointsX:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX)/30;
 PointsY:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY)/30;
 X1:=round((printer.PageWidth - Pagecontrol1.Width*PointsX)/2);
 Y1:=round((printer.PageHeight - Pagecontrol1.Height*PointsY)/2);
 X2:=round(X1+Pagecontrol1.Width*PointsX);
 Y2:=round(Y1+Pagecontrol1.Height*PointsY);
 Printer.Canvas.CopyRect(Rect(X1,Y1,X2,Y2),Pagecontrol1.Canvas,Rect(0,0,Pagecontrol1.Width,Pagecontrol1.Height));

 for i:=start to stop do
  begin
   PageControl1.Pages[i].PaintTo(Printer.Handle,500,500);
   if i<>stop
   then Printer.NewPage;
  end;
 Printer.EndDoc;
end;
картинка не на много увеличилась, лейблы в ней остались такого же размера. Объясните что в этом коде отвечает именно за масштабирование? И будут ли увеличиватся лейблы вместе с панелькой?
Ответить с цитированием