如何共用外观相同的FORM,可以做公共的类吗?
如何操作,谢谢。

解决方案 »

  1.   

    将这个FORM作为父类,其他类似的都从这个FORM继承即可。
      

  2.   

    一般的TForm1 = class(TForm) 你将Tform换成你自定义的一个TForm,比如上面的TForm1(当然前面就不能是TForm1)在uses中包含自定义TForm所在的pas文件即可
      

  3.   


    在 newForm 的时候从你的项目里选已经存在的窗体就行了
      

  4.   

    继承共用窗体,
    如MODEFORM是自己设好的窗体
    TForm1 = class(TMODEFORM) 
      

  5.   

    uBaseBrows_AppEmployeefrm;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, uBaseBrowsfrm, ActnList, RM_Common, RM_Class, RM_GridReport,
      RM_System, RM_Dataset, DB, DBClient, Grids, DBGridEh, RzTabs, RzStatus,
      RzPanel, StdCtrls, RzCmboBx, ExtCtrls, RzButton, Mask, RzEdit, RzDBEdit,
      RzDBBnEd;type
      TfrmBaseBrows_AppEmployee = class(TfrmBaseBrows)
        Label9: TLabel;
        Label8: TLabel;
        Label7: TLabel;
        Label6: TLabel;
        Label5: TLabel;
        Label4: TLabel;
        Label3: TLabel;
        Label2: TLabel;
        Label15: TLabel;
        Label14: TLabel;
        Label13: TLabel;
        Label12: TLabel;
        Label11: TLabel;
        Label10: TLabel;
        dsn_workdate: TRzDBDateTimeEdit;
        dsn_tel: TRzDBEdit;
        dsn_status: TRzDBEdit;
        dsn_mobile: TRzDBEdit;
        dsn_leavedate: TRzDBDateTimeEdit;
        dsn_Hqid: TRzDBEdit;
        dsn_emptype: TRzDBEdit;
        dsn_emprealName: TRzDBEdit;
        dsn_empName: TRzDBEdit;
        dsn_empid: TRzDBEdit;
        dsn_deptid: TRzDBEdit;
        dsn_birthday: TRzDBDateTimeEdit;
        dsn_addr: TRzDBEdit;
        dsn_braid: TRzDBButtonEdit;
        Label1: TLabel;
        dsn_braname: TRzDBEdit;
        procedure FormCreate(Sender: TObject);
        procedure dsn_braidButtonClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      frmBaseBrows_AppEmployee: TfrmBaseBrows_AppEmployee;implementation
     uses uBaseBrows_AppEmployeeBusiness ,uPublicSelectValue;{$R *.dfm}procedure TfrmBaseBrows_AppEmployee.FormCreate(Sender: TObject);
    begin
      inherited;
      FBaseBrowsBusiness :=TBaseBrows_AppEmployeeBusiness.create;
    end;procedure TfrmBaseBrows_AppEmployee.dsn_braidButtonClick(Sender: TObject);
    begin
      inherited;
     if not SelectvalueObject.SelectValue(50,Getscreenpoint(Tcontrol(sender)))  then
      begin
        Exit;
      end;
      if not (FBaseBrowsBusiness.Dataset.State in [dsedit,dsInsert] ) then
        FBaseBrowsBusiness.Dataset.Edit;  dsn_braid.Field.AsString  := SelectvalueObject.KeyVaule ;
      dsn_BraName.Field.AsString  := SelectvalueObject.ListVaule  ;
    end;initialization
      RegisterClass(TfrmBaseBrows_AppEmployee);
      ActivateClassGroup(TfrmBaseBrows_AppEmployee);
    finalization
      UnRegisterClass(TfrmBaseBrows_AppEmployee);
    end.
      

  6.   

    创建好公共窗体如TPublicform
    1.新建,找到你当前工程项目,选择inherited from TPublicform
    2.新建一个Form,更改Tform1 = class(TForm)更改为TForm1 = class(TPublicform)
      

  7.   

    创建好公共窗体如TPublicform 
    新建,File-new-other-你当前的工程名 找到Publicform,OK就行。
    这是最简单的。里边的东西该继承的需要些inherited.
      

  8.   

    拿登陆来说:
    FrmBase(提供整个项目与UI元素相关的基础类)
    FrmLoginCustom(继承自FrmBase)
    FrmLogin(继承自FrmLoginCustom)
    与之相类的窗体可直接从FrmLoginCustom继承
      

  9.   

    没想到大家这么热心~~!小弟受宠若惊啊.
    趁热再贪问一下,那父FORM的函数要怎么写才可重用性好呢?
      

  10.   

    看有多相似了,很相似的用starluck说的方法。