自己用TEDIT 改一个不可以么?

解决方案 »

  1.   

    unit IPAddressEdit;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComCtrls, CommCtrl,
      StdCtrls;type
      TIPAddressEdit = class(TEdit)
      private
        { Private declarations }
        procedure WMSetFont(var Message: TWMSetFont);message WM_SETFONT;
      protected
        procedure CreateParams(var Params: TCreateParams); override;
      public
        { Public declarations }
      published
        { Published declarations }
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('Liren.z', [TIPAddressEdit]);
    end;{ TIPAddressEdit }procedure TIPAddressEdit.WMSetFont(var Message: TWMSetFont);
    begin
    //不可以调用父控件的此方法
    //否则,控件不能正常工作
    end;procedure TIPAddressEdit.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      InitCommonControl(ICC_INTERNET_CLASSES);
      CreateSubClass(Params, WC_IPADDRESS);
    end;end.这个就是从TEDIT继承的,如果没有procedure WMSetFont也会出现字体改变的现象,我想知道是为什么,怎么解决?