请教如何在onshow事件里退出.

请教如何在onshow事件里退出. Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiBase/html/delphi_20061206144507264.html
本人用delphi   6写了一个dll,dll里创建了名为frm_user_defined_report_forms的from。本人想在这个from的onshow事件做个判断然后符合件就退出。代码如下:  
  procedure   Tfrm_user_defined_report_forms.FormShow(Sender:   TObject);  
  begin  
      inherited;  
      Init;  
      BtnOpenClick(BtnOpen);  
      if   fa=1   then  
          begin  
              if   Assigned(frm_user_defined_report_forms)   then  
              frm_user_defined_report_forms.Close;  
          end;      
  end;  
  结果能退出,但再进去或退出这个系统时出现地址端口栏错误。本人也试用freeandnil()函数去清空,但仍然不行。请教各位如何修改这段onshow事件的代码令到它能在onshow事件里退出。

halt(0)

halt(0)开始我也想过用,但是它是退出整个系统,而我只是想退出这个dll并清空它再进去不会出现地址端口错误,所以这个halt(0)不合适.

在窗体的Destory事件里写代码释放掉不可以吗

先D顺便JF

FreeAndNil(frm_user_defined_report_forms);  
  退出是最安全的,窗体内存被释放。  
   
  不过,不知道你从DLL外面如何创建的窗体。这个也是后面可能会出错的地方呢。因为这一次退出时释放了资源,那么下一次进入时创建不正确就会出错。

楼主你思路不对。   为什么非要在他已经SHOW后才判断它。  
  将没SHOW之前就判断它。  
  buttonOnclick()  
  begin  
        if   not   Assigned(frm_user_defined_report_forms)   then  
        frm_user_defined_report_forms.show;  
  end;

最好的解决办法是象楼上说的一样,从设计上就避免这样的情况.

想法上的问题。  
       
  --------------------------------------------------------------  
  程序,犹如人生。  
 

既然都已经show了,为什么非要在onshow的时候退出呢?  
   
  程序设计有问题

这个窗口能打开么?

在OnShow的时候Post一个Message,WM_QUIT  
  PostMessage(Handle,   WM_QUIT,   0,   0);

转载于:https://www.cnblogs.com/delphi2007/archive/2009/04/22/1441113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值