我在一个FORM(FormA)上放了几个ComboBox和Edit,对每个组件写了些事件处理程序,现在我又要写个Form(FormB),比FormA多了个Edit,另外,一个button的click事件处理程序不一样,其他的都和FormA是一样的。我以前都是把FormA的程序拷贝过来,但是我觉得FormB应该能通过对FormA的继承之类的方法来直接复用而不需要拷贝的。请各位高手能指点一下。我以前一直是在Unix上用ANSI C写程序的,对面向对象的编程没什么经验。

解决方案 »

  1.   

    可以让Formb继承forma生成,
      

  2.   

    你可以先建立一個基窗體,並保存然後你點擊你的Delphi菜單File->New->Other...
    選擇你的工程頁面,裡面應該會有剛剛你保存的那個窗體,點中它,再點確定
    這樣,你就生成了一個繼承的窗體了
      

  3.   

    你可以做一个窗体,把forma和formb相同的部分都做上,几个ComboBox和Edit,这些都做上;一个button的click事件处理程序不一样,那么这个不同就不要写。
    然后forma,formb都从这个窗口来继承,一个button的click事件处理程序不一样,然后就根据区别分别的处理...
      

  4.   

    usa112233 (菜鸟)
    我以前一直是在Unix上用ANSI C写程序的,对面向对象的编程没什么经验。
    ==================================================================
    和我2000年时的状态一样(1995~2000 SCO AS400),没理由不帮:除上面几个老大说的窗口继承外,再提两种:1. 动态创建   在窗口设置标志位,根据标志位动态创建或释放其它控件,在代码中
       根据标志位的状态做相应的处理2. 将公用的部分浓缩为Frame或组件
      

  5.   

    forma,鼠标右键,Add to Repository
    创建formb的时候就可以是forma的拷贝,或者继承了,可以自己选择
      

  6.   

    我以前一直是在Unix上用ANSI C写程序的,对面向对象的编程没什么经验。
    本人认为还是 你以前的方向比较好 不知道你为什么又要做WINDOW下的开发了 不解
      

  7.   

    add to repository把你想要继承的窗体加进库中,当你下次要用时,new-form中就可以看到你所要继承的窗体.
      

  8.   

    没有必要,用一个全局的变量来判断,在OnShow里:
    if flag='12' then Edit1.Visible:=true;
    if flag='34' then Edit1.Visible:=false;