DEV的打印功能确实强大,但是初学者很难使用。看了打印的例子,还是不知道如何使用,从窗体文件中能看到有打印连接对象Printer1Link,但就是不知道如何关联。无意中双击了一下dxComponentPrinter1,惊喜出现,如下图点击。
无意中双击了一下dxComponentPrinter1,惊喜出现,如下图点击。
1、Add以增加打印对象,可以是窗体,也可以是cxGrid,cxDBPivotGrid等,系统会添加相应的PrintLink对象。
2、在这里可以维护打印对象:增加、删除、设计。
3、动态创建。
虽然在设计期可以方便的设计打印功能了,但有时还是需要动态创建打印功能。动态创建又是另外一回事了,不像设计期那么方便。
摸索了几个小时,加上看原代码,终于知道如何创建了。其实很简单,只需要几句话就搞定了。
procedure TGridMgr.miPrintClick(Sender: TObject);
var
dxComponentPrinter:TdxComponentPrinter;
PrinterLink1:TBasedxReportLink;
begin
dxComponentPrinter :=TdxComponentPrinter.Create(nil);
PrinterLink1 :=dxComponentPrinter.AddLink(FGrid);
dxComponentPrinter.Preview(True, PrinterLink1);
PrinterLink1.Free;
dxComponentPrinter.Free;
end;
重点解释:
PrinterLink1 :=dxComponentPrinter.AddLink(FGrid);这一句是核心,表达了三层意思。1是PrintLink对象不要用类来直接创建,2是应该由打印对象dxComponentPrinter来创建,3是创建方法AddLink的参数是要打印的对象。系统会根据打印对象的不同正确创建相应的PrintLink对象。
4、多个打印连接对象时如何正确调用,在打印前设置要打印的对象即可。
dxComponentPrinter1.CurrentLink :=dxComponentPrinter1Link2;//dxComponentPrinter1Link1;
dxComponentPrinter1.Preview();