为什么这样一直报错?
 f_choiemain:=f_choicemain.Create(Application);
  f_choicemain.Show;
  f_choicemain.Update;
  Application.Title := '系统';
  Application.Initialize;
  Application.HintHidePause:=100000;
  Application.CreateForm(Tf_main, f_main);
  //Application.CreateForm(TF_Choicemain, F_Choicemain);
  f_choicemain.Hide;
  Application.Run;报错:Execption EAccessViolation in module p_nmxzxt.exe at 000B2B38,
     Access violation at address 004B2B38 in module 'p_nmxzxt.exe',Read of address 00000000我以前在delphi5中这样一只用,可是现在delphi7中却一直报错!为什么?

解决方案 »

  1.   

    改成下面的试试  Application.Initialize;
      Application.Title := '系统';
      f_choiemain:=f_choicemain.Create(Application);
      f_choicemain.Show;
      f_choicemain.Update;
      Application.HintHidePause:=100000;
      Application.CreateForm(Tf_main, f_main);
      //Application.CreateForm(TF_Choicemain, F_Choicemain);
      f_choicemain.Hide;
      f_choicemain.Free;
      Application.Run;
      

  2.   

    Application.Initialize;
      f_choiemain:=f_choicemain.Create(Application);
      f_choicemain.Show;
      f_choicemain.Update;
      Application.Title := '系统';  
      Application.HintHidePause:=100000;
      Application.CreateForm(Tf_main, f_main);
      //Application.CreateForm(TF_Choicemain, F_Choicemain);
      Application.Run;
     f_choicemain.Hide;
      f_choicemain.Free;
      

  3.   

    我设段点,运行到f_choiemain:=f_choicemain.Create(Application);的时候,就报错了
    为什么呢?
      

  4.   

    光标 停在那里呀,如果是在f_choiemain:=f_choicemain.Create(Application);那就是上一句的错误,如果是这句错误,看看在option选项内把f_choicemain设为available form
      

  5.   

    用一个timer,主程序隐藏,timer中显示form,killtimer。
      

  6.   

    这样试试! f_choiemain:=Tf_choicemain.Create(Application);//注意这
      f_choicemain.Show;
      f_choicemain.Update;
      Application.Title := '系统';
      Application.Initialize;
      Application.HintHidePause:=100000;
      Application.CreateForm(Tf_main, f_main);
      //Application.CreateForm(TF_Choicemain, F_Choicemain);
      f_choicemain.Hide;
      Application.Run;
      

  7.   

    to:qwertyasd(昊) 
       你说对了,应该写为f_choiemain:=Tf_choicemain.Create(Application);
       这时候,可以正确运行了,可是我有一个疑问,但为什么在delphi5的时候
       f_choiemain:=f_choicemain.Create(Application); 可以运行呢?而现在
       在delphi7中却造成内存读写错误呢?   大家回答一下这个为题之后,我马上结分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  8.   

    f_choiemain:=Tf_choicemain.Create(nil);//改成nil试试
      

  9.   

    不是吧!
    在D5,D6也是要用qwertyasd(昊)說的才不會出錯.
    因為加一個T代表f_choiemain是繼承父類.
      

  10.   

    这样应该没问题:  Application.Initialize;
      f_choiemain:=f_choicemain.Create(Application);
      f_choicemain.Show;
      f_choicemain.Update;
      Application.CreateForm(Tf_main, f_main);
      Application.Initialize;
      Application.Title := '系统';
      Application.HintHidePause:=100000;
      f_choicemain.Hide;
      Application.Run;
      

  11.   

    哈哈,再问一个问题,这是最后的,f_main active 之前,我想让f_choicemain显示1~2分钟,然后再隐藏!!怎么处理?Application.HintHidePause:=100000;只能10秒阿