814123 2019-05-11 13:05 采纳率: 50%
浏览 335
已采纳

delphi 动态创建PANEL,销毁时报错!

panel出现在不同的窗体上。

调用代码:

CreatePnlMess(ProcureForm,380,1,'无需重复!');

FORM1调用,如果PANEL还没有消失的话,Form2在调用PANEL会出现,但是2秒后会报错。

可能是计时器销毁的时候报错了!

创建时的代码

  if Frm.FindComponent(Frm.Name + '_PnlMess') <> nil then begin
    exit;
  end else begin
    pnl := TPanel.Create(Frm);
    with pnl do begin
      Name := Frm.Name + '_PnlMess';
      Parent := Frm;
      Height := 70;
      Width := Wid;
      ParentBackground := False;
      Color := $00F0CAA6;
      Left := (Frm.Width - pnl.Width) div 2;
      Top := (Frm.Height - pnl.Height) div 2;
      BringToFront;
      Caption := '';
    end;
    lbl := TLabel.Create(pnl);
    with lbl do begin
      //Name := Frm.Name + 'LblMess';
      Parent := pnl;
      Caption := Text;
      Left := (pnl.Width - lbl.Canvas.TextWidth(lbl.Caption)) div 2;
      Top := (pnl.Height - Height) div 2;
      AutoSize := True;
      BringToFront;

      Font.Size := 10;
      Font.Style := [fsBold];
    end;

    Ico := TIcon.Create;
    MainForm.ilMess.GetIcon(iL, Ico);

    img := TImage.Create(pnl);
    with img do begin
      //Name := Frm.Name + 'ImgMess';
      Parent := pnl;
      Height := 32;
      Width := 32;
      Left := 25;
      Top := (pnl.Height - Height) div 2;
      BringToFront;
      Picture.Assign(Ico);
    end;

    Trm := TTimer.Create(Frm);
    with Trm do begin
      //Name := Frm.Name + 'TrmMess';
      Interval := 2000;
      OnTimer := MainForm.CurrentTimer;
      Enabled := True;
    end;
  end;

倒计时销毁的代码

  img.Free;
  Ico.Free;
  lbl.Free;
  Trm.Free;
  pnl.Free;
  • 写回答

2条回答 默认 最新

  • threenewbee 2019-05-11 13:46
    关注

    你在哪里销毁的,是不是出现了重复释放,也就是同一个变量已经释放再次释放的情况
    先把所有的free的代码全部注释,然后一条一条添加上去,看到哪里报错。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)