windows有差不完的bug,为什么还有这么多人用了?

解决方案 »

  1.   

    关闭quickrpt:可以考虑先拿到那个预览窗口的handle,然后关闭之?
      

  2.   


    去年我跟经理也是做这么一项测试,为了证明QuickReport是否会泄漏内存~~~不过,我忘就了怎么实现的了,好像是
    找到它的Handle,然后发送WM_CLOSE消息~~~
    具体的忘了,自己砖起吧~~
      

  3.   

    ...
    ...
    DM_ERS.ViewReceipt.Close;
    DM_ERS.ViewReceipt.ParamByName('pIDNO').AsString:= sIDNO;
    DM_ERS.ViewReceipt.ParamByName('pClassNO').AsInteger:= nClassNO;
    if not DM_ERS.ViewReceipt.Prepared then DM_ERS.ViewReceipt.Prepare;
    DM_ERS.ViewReceipt.Open;
    if not assigned(CourseReceiptForm) then
      CourseReceiptForm:= TCourseReceiptForm.Create(nil);
    CourseReceiptForm.QuickRep1.Preview;
    //自动关闭Preview
    DM_ERS.ViewReceipt.Close;上面这段代码执行到Preview时希望自动从开始循环执行,但现在须手动点Preview窗口的【Close】才行。
      

  4.   

    To ihihonline(小小->充电中……) :因为是做压力测试,即让程序自动循环运行几十次,以测试程序的稳定性等;To zswang(伴水)(* 嘻嘻 *) :上面这几行代码够吗?
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      QuickRep1.Preview;
      Caption := '只有关闭之后才执行';
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      SendMessage(FindWindow('TQRStandardPreview', nil), WM_SYSCOMMAND, SC_CLOSE, 0);
    end;
      

  6.   

    //参考
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Timer1.Enabled := True;
      QuickRep1.Preview;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Timer1.Enabled := False;
      SendMessage(FindWindow('TQRStandardPreview', nil), WM_SYSCOMMAND, SC_CLOSE, 0);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Enabled := False;
      Timer1.Interval := 2000;
    end;
      

  7.   

    谢谢 zswang(伴水)(* 嘻嘻 *) !