各位大牛,请教个打印设置的问题,有个按钮btn1,提供打印设置功能,事件如:
TPrinterSetupDialog *PrinterSetupDialog1=new TPrinterSetupDialog(frxReport_SystemManage);
PrinterSetupDialog1->Execute() ;
其中frxReport_SystemManage为TfrxReport控件。再有按钮btn2,提供打印功能,事件如:
frxReport_SystemManage->Print();
其中frxReport_SystemManage->PrintOptions->ShowDialog=ture.我的操纵顺序如:“单击btn1”设置打印机为一个打印机printer2,“单击btn2”实现打印,但弹出的打印设置对话框并不显示刚才设置好的printer2为默认打印机,还是需要重新选择。在此敬请大家能帮手说明原因,异或提供解决方案。谢谢! 

解决方案 »

  1.   

    frxReport_SystemManage->PrintOptions->ShowDialog=false
      

  2.   

    这样只是是btn2按钮生效后,不再弹出打印框而已。还是导致如下情况:
    btn1触发后,选择printer2为当前打印机;
    btn2触发后,即使frxReport_SystemManage->PrintOptions->ShowDialog=false使不再出现打印对话框,但物理进行打印时未必就是使用“btn1下选择的printer2打印机”,因为“btn1的打印机设置”没有与“rxReport_SystemManage的打印机设置”关联。
    而我就是不知道怎么进行关联。
      

  3.   

    btn1执行后,用一个全局变量保存设置好的打印机名字
    btn2在print前,再指定打印机D中是这样的:uses Printers;var
     Prv:string;btn1 代码:
    If PrinterSetupDialog.Execute then
     Prv:=Printer.Printers[Printer.PrinterIndex];btn2 代码:
    frxReport.PrintOptions.Printer:= Prv;
    frxReport.Print;