指定印表機後,出現Access violation at address 0052DD86....訊息 |
答題得分者是:dino
|
narcysionlin
一般會員 ![]() ![]() 發表:7 回覆:4 積分:2 註冊:2006-11-01 發送簡訊給我 |
各位高手,
我想將Quickrep指定印表機列印出來報表, 寫的程式碼如下: uses Printers procedure TFmC04.Button1Click(Sender: TObject); var idx: integer; begin idx := Printer.Printers.IndexOf('Adobe PDF'); if idx = -1 then raise Exception.Create('找不到印表機'); Printer.PrinterIndex := idx; showmessage (inttostr(idx)); Printer.BeginDoc; QrptC04.PrinterSettings.PrinterIndex := idx; Printer.EndDoc; end; 會出現如下的訊息 Access violation at address 0052DD86 in module 'Project1.exe'. Read of address 000002DC 我的程式碼應該如何改呢? |
dino
一般會員 ![]() ![]() 發表:20 回覆:73 積分:23 註冊:2002-07-29 發送簡訊給我 |
這種寫法你參考看看,修改一下
uses QuickRpt; var AReport:= TQReport; if MessageDlg('即將列印XX,請選擇列印的印表機。', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin QReport := TQuickRep.Create(self); try QReport.PrinterSetup; //PrinterIndex := QReport.Printer.Printers.IndexOf('印表機名稱'); //指定印表機 by name PrinterIndex := QReport.PrinterSettings.PrinterIndex; finally QReport.Free; end; end else Exit; if PrinterIndex = -1 then Exit;//按下取消 (PrinterIndex = -1) //列印 AReport:= TQReport.Create(self); try AReport.PrinterSettings.PrinterIndex := PrinterIndex; //指定印表機 AReport.Print; finally AReport.Free; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |