如题。

解决方案 »

  1.   

    这样应该可以:
    QuickRep1.Page.Orientation := poLandScape
      

  2.   

    uses
      printers;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      printer.Orientation := poLandScape
      // ....... your printer action.
    end;
      

  3.   

    如用QR的话则:use printers
    quickrep1.Page.Orientation:=polandscape(potrait);
      

  4.   

    我用的是PrintDBGridEh,我想直接让它横向,可是没有办法。于是只好直接设置打印机的方向,但是 Printer.Orientation:=poLandScape; 似乎不好用。
      

  5.   

    printer.PrinterIndex :=printer.PrinterIndex ;
          printer.GetPrinter(device,driver,port,adevmode);
          if adevmode<>0 then
            begin
              devmode:=globallock(adevmode);
              try
                devmode^.dmFields:=devmode^.dmFields or dm_papersize  or dm_orientation;
                devmode^.dmpapersize:=DMPAPER_A3;
                devmode^.dmOrientation :=dmorient_portrait;
    //        devmode^.dmpapersize:=DMORIENT_LANDSCAPE;
                Printer.SetPrinter(Device,Driver,Port,aDevmode);
              finally
                globalunlock(adevmode);
              end;
            end
      

  6.   

    其实,就是按 blueshu(绝对是菜鸟) 的程序运行后,系统里的设置也还是没有改变呀。
    我真急死了。
      

  7.   

    procedure setprint(pagesize:tpagesize;width,height:variant;Orientation:tprinterOrientation);
    var
      Device: array[0..255] of char;
      Driver: array[0..255] of char;
      Port: array[0..255] of char;
      hDMode: THandle;
      PDMode: PDEVMODE;
    begin
    //设置打印机
      try
      Printer.PrinterIndex := Printer.PrinterIndex;
      Printer.GetPrinter(Device, Driver, Port, hDMode);
      if hDMode <> 0 then
      begin
        pDMode := GlobalLock(hDMode);
        if pDMode <> nil then
        begin
          if pagesize=Custom then
          begin
            //设定自定义纸张
            pDMode^.dmFields := pDMode^.dmFields or
              dm_PaperSize or
              DM_PAPERWIDTH or
              DM_PAPERLENGTH;        pDMode^.dmPaperSize := 0;
            pDMode^.DMPAPERWIDTH:= width*10 ;
            pDMode^.DMPAPERLENGTH:=height*10;
          end
          else
          begin
            //设定纸张类型
            pDMode^.dmFields := pDMode^.dmFields or
              DM_PAPERSIZE  ;
           if pagesize=A3 then pDMode^.dmPaperSize := DMPAPER_A3;
           if pagesize=A4 then pDMode^.dmPaperSize := DMPAPER_A4;
           if pagesize=A5 then pDMode^.dmPaperSize := DMPAPER_A5;
           if pagesize=B4 then pDMode^.dmPaperSize := DMPAPER_B4;
           if pagesize=B5 then pDMode^.dmPaperSize := DMPAPER_B5;
           if pagesize=CSheet then pDMode^.dmPaperSize := DMPAPER_CSheet;
           if pagesize=Executive then pDMode^.dmPaperSize := DMPAPER_Executive;
           if pagesize=Letter then  pDMode^.dmPaperSize:= DMPAPER_Letter;
          end;
          printer.Orientation:=Orientation;
          GlobalUnlock(hDMode);
        end;
      end ;
      Printer.PrinterIndex := Printer.PrinterIndex;  
      except
        showmessage('没有默认选择打印机,或默认打印机不可使!');
        exit;
      end;
     end;