当我点击显示的时候,另一个窗体显示出来在里面输入数据,保存后用close关闭,等下次再调用的时候,窗体里的数据还在,我在网上查了下,有的说是释放,free,但是当我加了这句释放代码后,下次调用的时候会报错,说明一下,我的窗体不是用代码creat自动创建的,而是新建的,因此肯定不能释放,你可能会说再保存后清空,可是如果窗体上有Stringgrid组件呢,那里面的数据可多了,有没有其他办法呢,我记得vb中unload me后在调用可不会保存数据的.

解决方案 »

  1.   

    你做好了弹出显示那个窗体之后,假设为Form1,设置Form1的visible属性为false,然后你在点击的命令里面
    添加显示Form1的代码:Form1.show;  就可以弹出Form1窗体了,设置好参数后,再次弹出的时候,就是你
    保存设置的参数。
    不知道你是不是这个要求?
      

  2.   

    假设form1为主窗体,form2为第二个窗体(包含edit1组件)
    form2的create或show事件中要做form2的初始化(edit1.clear;)
      

  3.   

    自己写个调用过程
    procedure showForm2()
    begin
      if form2 = nil then
        form2 := TForm.Create(Application)
      form2.show;
    end;在cloase事件中:
    form2 := nil;
      

  4.   

    你在FormShow的时候清理掉控件里的数据嘛,每次Show都去创建窗体浪费资源
      

  5.   


    把 Show 改为 ShowModal
      

  6.   

    ....
    form1.showmodal;
    form1.free;
    form1 := nil;
      

  7.   

    好像大家都没有明白我的意思,我的意思是说,关闭窗体后,即close ,下次再调用的时候, 这个窗体上的edit中仍然还有上次的数据,怎么让他在每次调用的时候清空?我加了form.fee.后再调用就报错。所有有没有什么办法,在每次调用的时候,edit中不要保存上次的数据,stringGrid,也是碰到一样的问题。
      

  8.   


    你在窗体的 OnCreate事件中添加清除EDIT等控件中内容的代码
    就可以了,每次窗体调用,都清除内容
      

  9.   

    edit清空?调用窗体onclose的时候 edit.clear; 呵呵,不知是不是这个。
      

  10.   

    你的穿体是什么模式的,MID还是normal
    MID:
    调用时form.show;
    关闭时要在onclose中写:action := cafree;
                           from := nil;Normal:
    form.showmodal;
    form.free;
    from := nil;
      

  11.   

    在关闭窗体时清除数据,如果像stringGrid之类比较多的数据怕麻烦,就先把stringGrid Free然后再创建
      

  12.   

    "在每次调用的时候,edit中不要保存上次的数据," 楼主不可以在调之时清空吗?
      

  13.   

    Object在free后,下次调用的话要重新Create才行,LZ应该是忘了重新创建了
      

  14.   


    可我不是通过create命令创建的啊。直接在菜单上new的呀。