在你创建一个窗体之前,可以首先检查一下此窗体是否创建了,如果没有创建,先创建,然后在显示。例如:
if (Form2 = nil) then
  Form2 := TForm2.Create(self);
Form2.Show;
当然最好在窗口的关闭事件里包含
  Action := caFree;
  Form2 := nil;包含另外一个单元时按Alt + F11;

解决方案 »

  1.   

    在要form1(unit1)中调用form2(unit2),则要在form1中use unit2.
    在要form2(unit2)中调用form1(unit1),则要在form2中use unit1.
    但 use 语句不要写在 interface 语句后,写在implementation语句后就不会循环调用了。
      

  2.   

    我也碰到过类似的问题,我用liuchcn的方法,但是form1中的空间我还是没法是用啊?
    我是在form1的create中创建的form2,然后在form2中使用form1的table1老是提示
    没有声明
      

  3.   

    to delphi_bird(delphi-bird):
    在form2中使用form1的table1,除了要在form2中use form1,
    在引用table1时还要指明form1.table1。
      

  4.   

    怎么可能呢??!!!
    只要你想用的话,它(指IDE)就会询问你是否增加对另一窗体的引用呀!!
    至于循环调用,去看看delphi自带的帮助呀,里面提到了几种循环调用的关系。
      

  5.   

    老哥:
      单元循环引用时,至少有一个uses子句在implementation部分。
      不能两个同时在interface部分的,这样是要出错的,好象这个规定书上都讲的很清楚的啊!