Form1有个edit1控件,单击按钮showmodal出了Form2,form2也有个edit1控件,我想双击form2的edit1,在不关闭form2的情况下使form1的edit1控件内容和form2的edit1内容一样。现在互相引用没问题了,就是在form2的edit1的双击事件中不会写,不知道怎么得到Form这个对象。
我认为代码肯定就一句, ?.edit1.text := edit1.text;(注:他们都不是主窗口,?的位置写成Application.MainForm不行)
消息传递也试了,觉得麻烦,另外消息传递能能传递过去整形参数吗?

解决方案 »

  1.   

    在form2中引用form1的单元,然后双击edit时,写form1.edit1.text := Self.edit1.text;
      

  2.   

    bdmh每次的動作都這麼快。留點給大夥啊。bdmh的答案已經寫出來了,就這樣操作
      

  3.   

    没有这么简单,其实form1也是主窗口按钮单击事件里定义了一个frm: Tform1;然后新建showmodal出来的。form2是在form1的按钮单击事件定义的frm: Tform2,新建showmodal出来的。这样写form1.edit1.text 不行吧,写frm也不行吧。
      

  4.   

    你在form2中声明一个form1的变量,然后把form1的实例传进去
      

  5.   

    这样的话如果form2关了的话,form1会不会也被关闭呢?
      

  6.   

    4楼的回答很正确,没问题,再问一个问题好吗?
    互相引用必须一个在interface引用,另一个在implementation引用是吗?有没有隐性规定父窗口引用在哪,子窗口引用在哪,这两个地方有什么区别?
    另外消息传递只能传递整形吗?
      

  7.   

    确实基础知识差,我就觉得吧form2都关闭了,就是内存都free了,那么属于他的变量应该就都free了吧,那么传进来的form1不也就free了,别笑话我啊
      

  8.   

    补充:消息传递(postmessage或者sendmessage)后面的两个参数都是integer类型。其它类型可以传递地址
      

  9.   

    两个都在implementation不就安全了吗?
      

  10.   

    传进去的form1只是一个指针变量,free的时候不会free这个传递的变量,只是free掉这个类所属的变量
      

  11.   

    补充:消息传递(postmessage或者sendmessage)后面的两个参数都是integer类型。其它类型可以传递地址