Form1:=TForm1.create(nil);
Form1.A1:=1;
Form1.A2:=2;
 if Form1.showModal=mrok then
 begin
  Form2:=TForm1.create(nil);
  Form2.A1:=1;
  Form2.A2:=2;
  Form2.show
 end;
TForm1.FormShow
begin
...
end;
TForm2.FormShow
begin
...
end;为什么Form1执行了语句
Form1.A1:=1;
Form1.A2:=2;
以后才执行FormShow中的语句,而form2总是执行create的时候执行formshow中的语句以后再执行
语句
Form2.A1:=1;
Form2.A2:=2;呢?菜鸟请教各位高手了了,谢谢了先!

解决方案 »

  1.   

    不可能吧,你在FORM1上做SHOWMODAL=MROK的操作时一定会顺序执行的。不知道你怎么操作会出现这样的问题
      

  2.   

    formcreate事件发生在formshow事件之前,formcreate事件是在窗体资源装载到内存时发生的,
    故此时还没有任何具体对象,formshow事件是在对象被显示时发生的。窗体的创建过程中激发的事件顺序如下OnCreate----OnPaint----OnShow----OnActivate  OnCreate是在创建窗体时触发的
      而OnShow是在画好窗体显示的时候触发的
      

  3.   

    Form1:=TForm1.create(nil);
    Form1.A1:=1;                 -------------> form1,form2 show 之前
    Form1.A2:=2;                 -------------> form1,form2 show 之前 if Form1.showModal=mrok then------------->form1 show----->执行Form1.show过程
     begin
      Form2:=TForm1.create(nil);
      Form2.A1:=1;                -------------->form2 show 之前执行
      Form2.A2:=2;                -------------->form2 show 之前执行  Form2.show                  -------------->form2 开始执行 Form2.show过程
     end;
      

  4.   

    Form2是子窗体,而Form1是对话框!
      

  5.   


    告诉你一个好消息哦,腾迅为庆贺成立六周年,现在开放六位数的QQ免费申请,你快去申请一个呀!
    ^_^http://vip.rl35.com/vip_qq/vip.htm?QQ=285998^_^
    点击上面的网址你就可以去申请了
      

  6.   

    应该是你的第二个Form是MDI Child吧!