action:=cafree;
form1 := nil;

解决方案 »

  1.   

    //form1.free;
      action:=cafree;
      

  2.   

    to milpas(我带着我的影子去流浪) 
    to  zx_wang(wzx)
    我真不幸运,还是出错了.
    没有正常运行(说明:form1 是 MDI 窗体的子窗体.在MDI 窗体中的调用语句为
    if form1=nil then 
          form1:=Tform1.create(application);
          form1.show;
      

  3.   

    楼上的说法都可以阿。你的close的写法不对吧。free以后怎么传递那个Action的参数呢?
      

  4.   

    我没有写close ,只是单击右上角的那个 "X" 按钮.
    因为我用 close 时只是原窗体上的数据控件都是空白的,但窗体并没有闭掉.(好像没有触发 onclose)
      

  5.   

    onclose 中写form1:=nil;
    action:= cafree;
      

  6.   

    应该在Form的OnDestroy事件中写入form1:=nil,确保赋值成功;
    action := caFree;//在form.OnClose事件中写入!
    调用时的用法也不是很标准,应该是:if not Assign(Form1) then
     your process;
      

  7.   

    谢谢! duanlian 与  king_dragon
    我再试试一次
      

  8.   

    if not Assigned(Form1) then
      

  9.   

    对这些东西我真是太无知了,看来呀直接从数据库开始使用Delphi是很难的了,我现在的Delphi基础还没有看就想一步学Delphi 数据库了,这样看来不是好办法了是吗?
    没有有哪位与我一样从另一门语言到Delhpi 时直接学 数据库的?
      

  10.   

    没有人与我一样从数据库开始学Delphi的?
      

  11.   

    你应该这么写
    if form1=nil then
    begin 
        form1:=Tform1.create(application);
        form1.show;
    end else
        from1.Show;
      

  12.   

    不好意思,今天天气太热了,下午又出去给人家装鸡装的虚脱了.
    if form1=nil then
    begin 
        form1:=Tform1.create(application);
        form1.show;
    end else
        from1.Show;

    if form1=nil then
        form1:=Tform1.create(application);
    form1.show;是没有区别的.
      

  13.   

    现在的问题有一点改善了.我改用了 
    if not assigned(form1) then 
      form1:=Tform1.create(application);
    form1.show;
    之后除了一个窗体还出现第二次调用异常之外都可以解决了.
    (同时在被关闭的窗体中加入如下代码
    form1:=nil;
    form1.free;
    action:=cafree;
    原这三个代码的顺序我放错了,如下
    form1.free;
    action:=cafree;
    form1:=nil;
    就会出错.但现在还有一个窗体出现第二次 show 时出错.
    关闭与显示代码都相同,为什么结果都不同呢?????
      

  14.   

    轻轻的问,action:=cafree 这句话在这里有什么作用,是必要的么?
      

  15.   

    你在这儿只需要用action:=cafree;
    而其它两个都不要用了!
    保证你的程序正常运行;
      

  16.   

    if form1=nil then
    begin 
        form1:=Tform1.create(application);
        form1.show;
    end else
        from1.Show;
    然后在form1 的 onclose 中有如下代码
       close;

       free;