这个窗口通过
  win:=TuserManager_frm.Create(self);
  win.CodeLib:='gh_code';
  win.ShowModal;
显示    当我在 win 这个窗口的 onshow 事件中执行 self.close 时,为什么窗口会继续显示出来,而不是关掉了?

解决方案 »

  1.   

    win:=TuserManager_frm.Create(self);
      win.CodeLib:='gh_code';
      win.ShowModal;
      win.Free;
    你试试这个
      

  2.   

    你在onshow事件用 win.Free;
      

  3.   

    我用了 free 但不行,又试过了self.Perform(wm_syscommand,SC_CLOSE,0); 窗口还是顽强的显示出来了,why ????
      

  4.   

    搞定了!我先把它改为 非模式窗口,结果可以关,然后在模式窗口下我又在onClose 中加入了 action=caFree ,也可以关了!
      

  5.   

    private 
      needclose:boolean;procedure TForm2.FormPaint(Sender: TObject);
    begin
      if needclose then form2.Close;
    end;有什么过不去的非要找onshow的麻烦呢? 在formpaint事件里可以搞定.