Delphi中一个窗体跟另一个窗体怎样的方式通信才最好呢?是直接调用窗体的组件还是调用过程访问组件呢?还有就是变量或过程在哪个区定义比较好啊(PUBLISH\PRIVATE)但我看到好些代码这两个地方都不放的就放在TYPE的下面好困惑哦,这是面向对象编程吗?

解决方案 »

  1.   

    是直接调用窗体的组件还是调用过程访问组件呢?  怎么方便怎么用
    还有就是变量或过程在哪个区定义比较好啊(PUBLISH\PRIVATE)? PUBLISH下的变量和函数可以被其他类访问 PRIVATE下别的类不能访问
    两个地方都不放的就放在TYPE的下面好困惑哦? 有的记录类型定义和类定义放在TYPE下
      

  2.   

    其实单元文件就相当于一个类
    按你的要求
    如果希望OO
    就在待调用的单元里声明一个属性,语法和类中一样
    设置属性的Get和Set方法
      

  3.   

    1.直接调用组件和通过过程调用组件我看都差不多.怎么方便怎么用吧.
    2.published\public\private\protected 
      如果不写的话,默认是published
      

  4.   

    怎么可以怎么方便怎么用呢,软件是要分模块的。软件工程里面讲模块之间的耦合度了,应该关联性越弱越好。这样维护起来就很容易,扩展性也好。就像一台电视机,你什么都能进去拆进去改,那谁还敢给你维修啊!
    最好的方式是在被调用的窗体里面写一个Public函数:
    public ShowDetailForm(out s: string):Integer;
    f: fmDetail;
    begin
      f := fmDetail.create(nil);
      result := f.showdialog;
      if result = ID_Ok then
      begin
        s := f.Label1.Caption;
      end;
    end;
    然后在调用的窗体里面调用这个函数就行了。s就是你要返回的东西。用什么要通过参数传,千万不能用什么建什么,要什么拿什么。这样程序就乱了。切记
      

  5.   

    我觉得,最好通过其他的类的方式来使窗体互相通信
    如果单一的一个窗体调用另一个窗体,那么uses就好了
    如果互相调用,最好建一个新类
      

  6.   

    我也想最好不要直接调用其他窗体的组件,这样维护起来会很麻烦的,还有请教教一下放在publish与放在接口部分定义的函数或过程有什么不同啊,DELPHI的编程框架请大家一起讨论一下,编程思想理解透拉就很爽拉!!!
      

  7.   

    可也声明公共变量,用uses,等
    看情况了~!~!
      

  8.   

    一个单元文件主要分为接口部分和实现部分(还有两部分较少出现,初始和释放),publish本来就是放在接口部分定义的,它和PRIVATE、PUBLIC等四个关键字一起修饰单元的成员变量和成员方法,publish和PUBLIC差不多,对外公布,对控件而言,用publish关键字申明的成员变量和成员方法会显示在属性和事件中
    楼下继续补充
      

  9.   

    to kylix2003:
      单元文件怎么管理啊,比如我有两个PAS:A.Pas,B.Pas;在B中USES A。PAS然后在B中调用A中的组件或方法,就这样的意思吗,但如果A中的组件或方法变拉那在B中不是也要修改吗,如果项目大拉那。小弟不懂请指教?
      

  10.   

    变是肯定的,如果是public或published的变了,那你用的部分是要变的,不然怎么用啊,