窗体经过cx_in_for.showmodal表示窗体被显示!而又不现实状态到显示状态必然被激活呀!所以……

解决方案 »

  1.   

    if not assigned(cx_in_for) then cx_in_for:= Tcx_in_for.create(application);
      cx_in_for.showmodal;
                          //此处会进入mainform的onactive的事件中,这是为何?
      cx_in_for.release;
      cx_in_for:=Nil;
    你这些代码是不是不在mainform上??
    我估计这是borland自家代码的问题,比如它子窗体的showmoral之前,可能要调用到主窗体
    一些函数或街面上的问题,激活了主窗体。
      

  2.   

    还是那句话:估计这是borland自家代码的问题。
    如果你要避免这个问题。最简单是自己加写标志量(用全局变量作为标志量);
      

  3.   

    到底是showmodal 之后还是 release 之后? 你的注释出现的位置和你后面的说法矛盾!
    还有,onactive是不是 onactivate ? 注意这个事件不同于oncreate, 每次一个窗口
    从不活动到活动都会触发,比方mainform 在弹出dialog的时候会变成不活动,但dialog
    关闭的时候mainform回到前台,这个时候就会触发onactivate的
      

  4.   

    cx_in_for.release;你不会是release后触发吧??
    如果是这后面触发,还比较好理解。
      
      

  5.   

    同意flypuma(飞豹) ,应该是这样的,showmodal方法结束后是到主窗口的激活事件.