我需要在程序已经启动,且主界面已经出现在屏幕后要执行一个过程,如显示登录框,或者让一个MDIChild最大化等,如何实现?是否需要在主程序的某个事件中处理?我找不到这样的时间

解决方案 »

  1.   

    那就把這個需要執行的過程的代碼寫在主窗體的CREATE事件中。
      

  2.   

    我也想知道,在Create中实现,则主窗体还没有显示出来;在PowerBuilder中可以容易实现,在Delphi中可能需要由打开它的过程实现,比如登陆框,我都是在project source中。多线程能够保证每次子窗体接着主窗体后显示吗?
      

  3.   

    每次主Form最小化后最大都会有OnFormShow的,这样一来就重复执行了
      

  4.   

    OnFormShow事件如果你是想显示登陆界面的话.可以用SQL查询数据库.如果有记录就显示登陆界面.3.没用就直接启动程序
      

  5.   

    我试验过了OnFormShow只执行一次,能满足我的要求,只是界面还没有显示出来
      

  6.   

    让  你的主窗口去
    CONST 
    WM_login = WM_USER+1000;
    procedure showlogin(var msg:Tmsg) ; message  WM_login;procedure showlogin(var msg:Tmsg) ;
    begin
      //show dialoog 
    end;在主窗口的SHOW事件中 
    POSTMESSAGE(handle,WM_LOGIN,0,0);
    试试应该可以的
      

  7.   

    用个只执行一次的定时器,将时间设置为100毫秒或更少。在定时器的触发事件中将定时器Disable,并执行你想要执行的过程。
      

  8.   

    写在Create中这是错误的,窗体只有在Create结束后才show 所以支持写在onshow事件中!!!!!
      

  9.   

    楼上有些同志不要扯蛋!如果是主窗体,窗体最小化是不会触发show事件的!
    至于楼主一定要在主窗体上显示登陆框,那可以写在FormActivate事件里!
    procedure TForm1.FormActivate(Sender: TObject);
    begin
       loginForm.showmodal;
       OnActivate=nil;
    end;
      

  10.   

    同意 winxkm(蹩脚的程序员)
    各位如果方便,请给我儿子投一票
    http://www.nutricia.com.cn/vote.asp?id=736
    谢谢
      

  11.   

    同意 winxkm(蹩脚的程序员)
      

  12.   

    不可以,主Form启动不会有onactive事件发生