線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1433
推到 Plurk!
推到 Facebook!

如何設定QRPrintDialog中的印表機PaperSize!!

尚未結案
jzchen
一般會員


發表:8
回覆:21
積分:5
註冊:2002-06-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-02 16:35:32 IP:61.30.xxx.xxx 未訂閱
有個問題要請教各位大大!! 小弟的問題前提是: 1.QRPrintDialog是自己動態Create(因為PrintDialog好像無法指定printer) 2.QRPrintDialog.Printer也是動態Create(不要用Printers.Printer) 小弟希望在自訂按鈕開啟QRPrintDialog時能夠帶入QuickRep中的相關設定當初始值!!(如:印表機,PaperSize,Copies...等等) 感謝各位!!
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-04 10:27:04 IP:210.64.xxx.xxx 未訂閱
帥哥榮 你可以試試看,將所有的功能都自己寫啊!!用另外一個畫面去接資料!! Pillar Wang
------
Pillar Wang
jzchen
一般會員


發表:8
回覆:21
積分:5
註冊:2002-06-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-04 16:26:14 IP:61.30.xxx.xxx 未訂閱
帥哥助: 現在問題!!比較麻煩的是,不能用printers中的printer 因為 >
jzchen
一般會員


發表:8
回覆:21
積分:5
註冊:2002-06-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-10 17:49:35 IP:61.30.xxx.xxx 未訂閱
哇哈哈!!.......我找到方法了!! 以下是我的方法...大家參考看看!!多多指教!!   var   aDialog : TQRPrintDialog;   Device,   Driver,   Port : array[0..255] of char;   hDMode : THandle;   DevMode: PDeviceMode;  begin   aDialog := TQRPrintDialog.Create(Application);   aDialog.Printer := TPrinter.Create; ;   aDialog.Printer.PrinterIndex := QuickRep1.PrinterSettings.PrinterIndex ;   aDialog.Printer.GetPrinter(Device, Driver, Port, hDMode);   if hDMode = 0 then   begin     aDialog.Printer.PrinterIndex := Printer.PrinterIndex;     aDialog.Printer.GetPrinter(Device, Driver, Port, hDMode);   end;   if hDMode = 0 then   Raise Exception.Create('連到印表機失敗!')   else   DevMode := GlobalLock(hDMode);   with DevMode^ do   begin     { 此處是將QuickRep的設定值帶入印表機}     dmFields := dmFields or DM_COPIES;     dmCopies := QuickRep1.PrinterSettings.Copies ;     dmFields := dmFields or DM_ORIENTATION;     if (QuickRep1.PrinterSettings.Orientation = poPortrait) then       dmOrientation := DMORIENT_PORTRAIT     else if (QuickRep1.PrinterSettings.Orientation = poLandscape) then       dmOrientation := DMORIENT_LANDSCAPE;     dmFields := dmFields or DM_PAPERSIZE;     dmPaperSize := DMPAPER_A4; {需寫ㄧ個轉換TQRPaperSize的function}   end;     if not hDMode = 0 then     GlobalUnlock(hDMode);   with aDialog do   try     MinPage := 0 ;     MaxPage := 9999;     Options := [poPageNums, poWarning, poSelection];     if Execute then begin        {再將aDialog的設定值帶入QuickRep中}     end;   finally     free;   end; end;    YA!!YA!!YA!!.....大功告成!!
系統時間:2024-06-24 20:29:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!