用动态产生Form,产生之前判断是否要产生就行了

解决方案 »

  1.   

    因为要在做窗体show之前做一些事,再判断结果,所以要这样做
      

  2.   

    应该不能关闭,这是Windows机制造成的
      

  3.   

    谢谢adailee(不谈恋爱的铅笔),我要在窗体SHOW时看下我的数据库有没有我想要的纪录,如果没有就关闭窗体,有则显示
      

  4.   

    AP() ,应该不是我的程序问题,因为我在其它地方也是一样的写,就是在SHOW时写不行,你可以试下
      

  5.   

    是不给在show 的时候关闭的。
      

  6.   

    can't close on Formshow,you must use Timer to close Form
      

  7.   

    你试试把form的top设置一下,看不到窗体就行了,然后再show一下,判断符不符合你的要求,符合的话,把top改一下,不符合的话就close.
      

  8.   

    原来这样,那FORMSHOW之后会发生什么呢?我在PAINT里写是可以,不过有闪烁效果
      

  9.   

    的却不能在OnShow事件中写代码,除非这个Form是Application的第一个窗体。但是你可以这样处理。
    (1)不让Form2自动创建。
    (2)Form1调用Form2,这样写
        Form2:=TForm2.Creatr(self);
        if ... then 
          Form2.show
        else
         Form2.free;   
    另外,你这样的设计似乎不是很好。
    这个窗体可以设计为处理你的纪录,如果没有数据纪录,
    完全没有比较创建这个窗体,消耗资源。把判断过程独立出来,
    把窗体功能集中一下,比较优化,也比较好维护。
      

  10.   

    的确不能在OnShow事件中写代码,除非这个Form是Application的第一个窗体。但是你可以这样处理。
    (1)不让Form2自动创建。
    (2)Form1调用Form2,这样写
        Form2:=TForm2.Creatr(self);
        if ... then 
          Form2.show
        else
        Form2.free;  
    另外,你这样的设计似乎不是很好。
    这个窗体可以设计为处理你的纪录,如果没有数据纪录,
    完全没有必要创建这个窗体,消耗资源。把判断过程独立出来,
    把窗体功能集中一下,比较优化,也比较好维护。  
      

  11.   

    adailee(不谈恋爱的铅笔) ,我也知道这样不好,我也想过,不过因为我不止要做这些事,还要做其它的事,所以不能在创建时做
    Focus(老鱼) 请问怎样做呢?