本帖最后由 skyclin 于 2011-06-18 22:53:30 编辑

解决方案 »

  1.   

    楼主的这种Form类使用,我选择这样作首先创建一个Form,保存为TxxFormBase
    写好公共的事件,放好公共的控件,加上一些抽象方法(用来实现公共调用入口)
    保存之后要建立子类,
    (D7)点新建按钮,选择"项目文件"那个页面,选择TxxFormBase,OK后,就出现新窗口,(Delphi 7)
    (D2010)点新建按钮,依次是Delphi Projects -> Inherited Items -> TxxFormBase -> OKTxxFormBase的控件都有了,即使TxxFormBase里写了OnCreate事件,新窗口中依然可以写OnCreate事件,不冲突,在新窗口中的OnCreate事件中,inherited;这一行不能删除,否则TxxFormBase的OnCreate事件代码就不会执行,其他事件同样,然后override父类(TxxFormBase)的抽象方法,写上代码就可以干事了,创建时,GetClass('子类类名').Create(Application);....即可要修改TxxFormBase的代码控件什么的,改完保存即可,子类跟着动,唯一值得注意的就是子类的inherited这一行不要轻易删除。
      

  2.   

    更正一下
    TxxFormBase(GetClass('子类类名')).Create(Application);...
    补充一点
    我们通常不override Constructor Create,而是在OnCreate里写即可,这只是个习惯问题
      

  3.   

    试试kiboisme的方法,已经说得很详细了,如果楼主想提高这方面的知识,看看《Inside VCL》
      

  4.   

    努力学习中
    顶顶,学习学习一下>>>>>>>>>>>>>>>>>>
      

  5.   

    看picture的实现方式,图片可以向picture注册类型,很方便,但也不一定就非要那么做
      

  6.   

      RegisterClass(TFromA);
      RegisterClass(TFromB);var
      formclass:Tformclass;
      aform:TForm;
    begin
          formclass:=Tformclass(GetClass('TFromA')));
          aform :=formclass.Create(nil);
    end; 如上,你只要在每个子窗体的 initialization后面加上 RegisterClass(TFromB);就可以。
    除了窗体,从TPersistent继承的类 都可以用这类方法。