unit Component2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMyComponent = class(TEdit) private { Private declarations } FTimer: TTimer; FOnTimer: TNotifyEvent; protected { Protected declarations } procedure MyOnTimer(Sender: TObject); public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Start; published { Published declarations } property OnTimer: TNotifyEvent read FOnTimer write FOnTimer; end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TMyComponent]); end; procedure TMyComponent.Start; begin FTimer.Enabled := True; end; constructor TMyComponent.Create(AOwner: TComponent); begin inherited; FTimer := TTimer.Create(Self); FTimer.OnTimer := MyOnTimer; FTimer.Enabled := False; end; destructor TMyComponent.Destroy; begin FTimer.Free; inherited; end; procedure TMyComponent.MyOnTimer(Sender: TObject); begin Caption := TimeToStr(Now); if Assigned(FOnTimer) then FOnTimer(Self); end; end.