我在QuickRep报表里动态创建了一些QRlabel控件,取名为QR1,QR2,.....,第一次打开可以,后关闭打印界面窗口,第二次打开就出现了错误(提示说QRlabel的名字已经存在),我想是刚刚没有把QRlabe释放,应该怎么释放啊,我可能创建了50个左右。

解决方案 »

  1.   

    创建的时候保存在一个TList里,结束时,循环TList,释放之
      

  2.   

    我补充一下:
    var
      l:TList;
      i:integer;
    begin
      l:=TList.Create;
      l.add(...);
      for i:=0 to l.Count-1 do
      ...
      ...
      l.free;
    end;是这个意思吧?
      

  3.   

    没有道理三,你应该无法在运行期指定NAME的,
    不过真的是没有放,就用OBJECTLIST吧,只有调用OBJECTLIST。FREE就行了;
      

  4.   

    for flag:=0 to frmddglxt.Q_wgqmc.RecordCount do
       begin
        QR:=Tqrlabel.Create(application);
        qr.Visible:=true;
        qr.Parent:=QRBand13;
        QR.Name:='qr'+inttostr(flag);
         end;
    怎么用啊,请帮我列出来,好吗?
      

  5.   

    你把报表的那个form进行动态产生释放就没问题了。
      

  6.   

    QR.Name:='qr'+inttostr(flag);
    创建的时候不指定名称不行么?这样就不会因为重名而冲突了...