我有a,b,c 3个画面
a,b画面都有跳转按钮,到c画面,然后a或者b画面hide。
而c画面有返回按钮,可以返回a或者b画面。问题有2个
1。我想这样一来,必须向c画面传参数(a,b画面的实例),所以c画面就要在interface中uses a,b;
而a和b画面也必须interface中uses c
这样就产生了循环调用,报错。
2.因为参数可能是a也可能是b,请问参数的类型如何定?小弟初学delphi,还望高手赐教!

解决方案 »

  1.   

    1。在implentment后面用uses就不会报错2。你说的画面是指一个窗体吗?
       如果是参数类型就应该是TForm,判断的时候根据窗体的name判断就OK了
      

  2.   

    谢谢楼上的答复,偶比较笨,还是不太明白不过如果把参数定义成TForm类型,a画面传的参数是TFormA,类型不符,想必报错
      

  3.   

    如果功能不是太复杂,建议在一个Form上使用PageControl或者NoteBook等多页签组件,容易开发并管理。
      

  4.   

    1、分别在a与b的interface uses c;然后在c的implementation语句后面uses a,b;这样可以避开循环引用。
    2、向C画面传递a,b参数时,参数类型你就用基类的,用TObject就行,如果是窗口用TForm也行,然后在C中具体对每一个参数进行(强制)类型转换就行了,可以加入类型判断后再转换,如果你肯定就是这个a或b的画面实例,可直接强制转换即可。
      

  5.   

    再建一个unit d,专门用来定义存放交互的参数,
    然后,a、b、c分别调用d