我在toolbar里加了一个panel组件,但是在程序中删除的时候一直报错。
procedure TForm1.Panel1DblClick(Sender: TObject);
begin
(sender as tpanel).Free;
end;
有什么问题解决吗?

解决方案 »

  1.   

    Panel 对应的 过程都删除 完
      

  2.   

    这是一个事件,事件完了还会用到TPanel,这时你把它释放了当然会出现了
      

  3.   

    //在OnMouseDown里加
       if (Button=mbLeft) and (ssDouble in Shift) then
       begin
         (Sender as TPanel).Free;
       end;
      

  4.   

    //不能自杀,但可以制造他杀的条件。const
      WM_DELETECONTROL = WM_USER + 10;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        procedure Panel1DblClick(Sender: TObject);
      private
        { Private declarations }
        procedure WMDeleteControl(var Msg: TMessage); message WM_DELETECONTROL;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMDeleteControl(var Msg: TMessage);
    begin
      if Msg.WParam <> 0 then
        TObject(Msg.WParam).Free;
    end;procedure TForm1.Panel1DblClick(Sender: TObject);
    begin
      PostMessage(Handle, WM_DELETECONTROL, Longint(Sender), 0);
    end;end.