在一个Dll工程中(red.dll),有三个窗体(MainForm\ReportForm\AboutForm),我想在MainForm的mainfrm.pas文件中控制ReportForm中的控件(比如:QReport)属性,进行预览或打印等操作。可是,Uses reportunit;  ReportUnit.ReportForm.QRep1.Print;  出错!该怎样做呢?谢谢各位。急,在线等待……

解决方案 »

  1.   

    说的不清楚哦。。你想做什么 调用DLL还是??
      

  2.   

    不是调用!我的意思是:在MainForm(主窗体)上控制ReportForm(报表窗体)上的控件!MainForm和ReportForm都在同一个Dll工程中。 比如:
        ReportForm(报表窗体)上有QReport控件。现在我想通过MainForm(主窗体)上按钮Onclick事件,打印报表。如果不是在DLL中的话,用Uses reportunit;  ReportUnit.ReportForm.QRep1.Print; 就可以了!但是在Dll中,这样是不行的,请问:该怎么做呢?
      

  3.   

    因为Dll中所有的窗体是不会自动创建的。你直接这么引用当然会出问题。应该先手动创建ReportForm:ReportUnit.ReportForm := TReportForm.Create(Application);
    然后:ReportUnit.ReportForm.QRep1.Print应该就没问题了。不过要记得Print返回后释放ReportForm。