请问:
  1、有2个窗口,对应unit1,unit2,在unit1中create unit2的窗口类,最后在unit1的formclose方法中
写form2.free,运行输出的是dll文件,关联test.exe程序。可是发现关闭窗口1后form2没有释放!
因为我再编译时说没法写入dll文件,共享冲突。前提:没有在 unit1中create form2的情况下一切正常。我该怎么样完全释放form2???
  2、一个窗口的子窗口怎么创建?也就是说弹出子窗口后不能操作父窗口,且任务栏里只有父窗口。希望各位大虾教我!

解决方案 »

  1.   

    unit1的uses 中加入unit2
    form2:=tform2.create(application);
    form2.showmodel;
    form2.free;
    ---------------
    application.creatfrom(tform2,from2);
    from2.showmodel;
    form2.free;
    ----------------
    gongtong xuexi
      

  2.   

    wtg476(起飞),我的是dll文件,怎么会有application呢?
    现在假如这样,我在form1的oncreate事件添加:form2:=TForm2.Create(form1);
    怎么让form2变成form1的子窗口啊?
      

  3.   

    把Application当做参数传递进去!!!
      

  4.   

    最好把Application和Screen都传进去!
    方法是在输出的函数里加两个参数(AApplication: TApplication; AScreen: TScreen),在dll里的函数里使用!
    在程序调用的时候,就会把这两个东西给传进去了!
      

  5.   

    1、不能在unit1的formclose方法中写form2.free,因为unit1包含了unit2,只能调用unit2的所有性能,但是不能帮unit2释放内存,只能在unit2的formclose里用form2.free来释放!2、主窗口的form属性设为fsmdiform,子窗口的form属性设为fsmdichild。