现在还有个问题,我的程序编译成功了,出现了主窗口,但是一点登陆按钮,
(登陆窗口动态建立
procedure TForm1.N2Click(Sender: TObject);
begin
  Form2 :=Tform2.Create(nil);
  form2.Show;
end;)系统报错
不能在string中使用null  程序终止,use step or run to continue ,可是我退出delphi
双击刚才编译的成的.exe文件,程序可以正常使用,请问为什么,

解决方案 »

  1.   

    改成Form2 :=Tform2.Create(Application);
      

  2.   

    if Assigned(Form2) then
      Form2 :=Tform2.Create(Application);
    From2.Show;
      

  3.   

    procedure TForm1.N2Click(Sender: TObject);
    var Form22:TForm2;
    begin
      Form22 :=Tform2.Create(nil);
      form22.Show;
    end;http://www.csdn.net/cnshare/soft/11/11463.shtm
      

  4.   

    Form2 :=Tform2.Create(nil);
      
    改成Form2 :=Tform2.Create(Application);
      

  5.   

    xiaozhanger(你好) ,我照你说的改了,还是不行
     yyy1020(yyy1020)我照你说的改了,还是不行
    现在procedure TForm1.N2Click(Sender: TObject);
       begin
       Form2 := Tform2.Create(Application);
       form2.Show;
    end;
    还是不行
      

  6.   

    var
    Form2:Tform;
    begin
      form2:=tform.create(nil);
      form2.show;
      form2.Position:= poDesktopCenter;
    end;
      

  7.   

    我的程序编译成功了,出现了主窗口,但是一点登陆按钮,
    (登陆窗口动态建立
    procedure TForm1.N2Click(Sender: TObject);
    begin
      Form2 :=Tform2.Create(nil);
      form2.Show;
    end;)系统报错
    不能在string中使用null  程序终止,use step or run to continue ,可是我退出delphi
    双击刚才编译的成的.exe文件,程序可以正常使用,请问为什么,
    楼上 fbt118(007) 大侠,请问加var Form2:Tform;,干什么,我这是动态建立窗口呀
      

  8.   

    fbt118(007) 大侠,你的办法我试验了,虽然系统不报错了,可是我的登陆窗口出不来了
    诚心请教
      

  9.   

    估计问题在 TForm2.OnCreate 或 TForm2.OnShow 中,设断点跟踪一下
      

  10.   

    xiaocha(小查) 高手,可以说的详细电吗,我刚学delphi,好多不清楚
      

  11.   

    if Form2 = nil then
         begin
              Application.CreateForm(TForm2 , Form2 );
              Form2 .show;
         end
         else
              Form2 .show;
      

  12.   

    你上面的代码本身没有问题,但 delphi 在调用 TForm2.Create 和 Form2.Show 时,会自动执行 TForm2.OnCreate 和 TForm2.OnShow 事件的代码,如果你在这两个事件中写了代码,并且有错误,就会产生你说的情况,这时,你可以在这两个事件的代码处设置断点,再单步执行,直到发现产生错误的代码,修改它!
      

  13.   

    xiaocha(小查) ,我在TForm2.OnCreate 和 TForm2.OnShow 什么都没写
      

  14.   

    那可能是delphi的问题。软件能正常运行就可以了
      

  15.   

    procedure TForm1.N2Click(Sender: TObject);
    var Form22:TForm2;
    begin
      Form22 :=Tform2.Create(application);
     try
      form22.Show;
     except
      form22.free;
     end;
    end;
      

  16.   

    application换成nil也可以
    或是
    Form22 :=Tform2.Create(application);
     try
      form22.Showmodal;
     finally
      form22.free;
     end;
      

  17.   

    回答楼主的这个问题
    楼上那个大侠,请问你那样改,是为什么,成心请教,改了还是不行(改成application)
    create是tcomponent的方法语法如下:
    constructor Create(AOwner: TComponent);其中AOwner是该对象的父对象,按钮的父对象是form,窗口的父对象是Application。
    你给出的应该是正确的,问题可能是出在别的地方,在这里体现出来。
      

  18.   

    xjpiking(king) 
    form22被free了那firstpaul(瞬间爱) 要实现的功能怎么办呢?