我的程序动态注册类,注册完后为什么还提示 EClassNotFound with message 'TEditMask Not Found'
unit genprg;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons , dxDBGrid, Mask, ExtCtrls;type
  TfmGenPrg = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Panel1: TPanel;
    MaskEdit1: TMaskEdit;
    Panel2: TPanel;
    Button1: TButton;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  fmGenPrg: TfmGenPrg;implementationuses global,genform, genfield, SetMainForm,datamodule;{$R *.dfm}procedure TfmGenPrg.Button1Click(Sender: TObject);
begin
  CopyComponent(panel1,panel2,panel2);
end;initialization
begin
  registerClasses([TMaskEdit]);//
end;end.

解决方案 »

  1.   

    registerClasses([TMaskEdit]);//我试了下,这里没问题
      

  2.   

    我复制控件的时候就提示错误了,复制的PANEL里就只有一个 TMASKEdit控件
      

  3.   

    TEditMask Delphi都帮注册了哪你还需要你自己手动注册呢, 
    不是这个原因吧, 看看procedure FormCreate(Sender: TObject);
    是怎么写的?
      

  4.   

    傻了 ReadRootComponent ,需要动态注册
      

  5.   

    呵呵,错误不在RegisterClasses([TMaskEdit]),可能出现在其他动态创建或使用的地方。