我想要打印Notebook1中其Notebook1.PageIndex:=8的所有内容,怎么写打印按钮代码?下面是我的写的代码,可是打出来的是白纸
procedure TfrmMain.SpeedButton92Click(Sender: TObject);
var
start,stop:integer;begin
  Notebook1.PageIndex:=8  ;
  printdialog1.FromPage := Notebook1.PageIndex;
  printdialog1.ToPage :=Notebook1.PageIndex;
 if  printdialog1.Execute then
 begin
 with printdialog1 do
 begin
   if printrange=prselection then
  begin
  start:=Notebook1.PageIndex;
  stop:=start;
  end;
  end;
  end;
  with printer do
  begin begindoc;
下面的代码要怎么写才能打印出Notebook1.PageIndex:=8当中的所有内容,Notebook1.PageIndex:=8这一页中放有3GroupBox,在GroupBox里面放有Label和Panel
 // printer.Canvas.Draw(0,0,Image13.Picture.Graphic);这一句加了可以打印Image13背景图片,可是以A4纸打印出来是很小的。
//printer.Canvas.Ellipse(0,0,Notebook1.Width,Notebook1.Height);加这一句能打印出一个小椭圆。
 enddoc;
 end; end;

解决方案 »

  1.   

    Notebook1.PageIndex := 8; 
    Form1.Print;
      

  2.   

     
    procedure TForm1.Button1Click(Sender:TObject);var
      I, Start, Stop: Integer;
    begin
    PrintDialog1.Options := [poPageNums, poSelection];
    PrintDialog1.FromPage := 1;
    PrintDialog1.MinPage := 1;
    PrintDialog1.ToPage := PageControl1.PageCount;
    PrintDialog1.MaxPage := PageControl1.PageCount;
    if PrintDialog1.Execute then
      begin
       { determine the range the user wants to print }
        with PrintDialog1 do 
        begin
          if PrintRange = prAllPages then        begin
            Start := MinPage - 1;
            Stop := MaxPage - 1;
          end
          else if PrintRange = prSelection then
          begin
            Start := PageControl1.ActivePage.PageIndex;
            Stop := Start;
            end
          else  { PrintRange = prPageNums }
          begin
            Start := FromPage - 1;
            Stop := ToPage - 1;
          end;
        end;
        { now, print the pages }    with Printer do
        begin
          BeginDoc;
          for I := Start to Stop do
          begin
            PageControl1.Pages[I].PaintTo(Handle, 10, 10);
            if I <> Stop then
              NewPage;
          end;
          EndDoc;
        end;
      end;end;
      

  3.   

    PageControl1.Pages[I].PaintTo(Handle, 10, 10);
    我弄的是Notebook1,改成Notebook1时,这里会有错,上面的代码开始看过的