I developed a vcl control and it work well in event. Then I make a activex control based on it, but not triger the event again. What's the matter of it?

Is there anybody can help me?

================================
unit CmdMessageClient;

interface

uses
SysUtils, Classes, Controls, Messages, IdTCPClient;

const
CM_MESSAGE=WM_USER+101;

type
{========Block of Data========}
TCommand=record
CommandID: smallint;
Msg: string[255];
end;

{===========Thread===========}
TClientHandleThread=class(TThread)
private
FClient: TIdTCPClient;
FControl:Pointer;
FCB:TCommand;
procedure HandleInput;
protected
procedure Execute; override;
end;

{=========VCL Compnent========}
TCmdMessageClient = class(TWinControl)
private
FClient:TIdTCPClient;
FClientHandleThread:TClientHandleThread;
FOnMessage:TNotifyEvent;
procedure CMMessage(var Msg: TMessage);message CM_MESSAGE;
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
function Connect:boolean;
property OnMessage: TNotifyEvent read FOnMessage write FOnMessage;
end;


procedure Register;

implementation

procedure Register;
begin
RegisterComponents('MessageClient', [TCmdMessageClient]);
end;

{ TCmdMessageClient }

procedure TCmdMessageClient.CMMessage(var Msg: TMessage);
begin
inherited;
if Assigned(FOnMessage) then FOnMessage(self);
end;

function TCmdMessageClient.Connect: boolean;
begin
if (FClient=nil) then FClient:=TIdTCPClient.Create(self);
if (FClient.Connected) then
begin
Result:=false;
end
else
begin
FClient.Host:='192.168.60.216';
FClient.Port:=5772;
FClient.Connect(5000);
FClientHandleThread:=TClientHandleThread.Create(true);
FClientHandleThread.FClient:=FClient;
FClientHandleThread.FControl:=self;
FClientHandleThread.FreeOnTerminate:=true;
FClientHandleThread.Resume;
Result:=true;
end;
end;

{ TClientHandleThread }

procedure TClientHandleThread.Execute;
begin
while not Terminated do
begin
if not FClient.Connected then
begin
Freeandnil(FClient);
Terminate;
end
else
try
FClient.ReadBuffer(FCB, SizeOf (FCB));
Synchronize(HandleInput);
except
end;
end;
end;

procedure TClientHandleThread.HandleInput;
begin
TCmdMessageClient(FControl).FOnMessage(self);
end;

end.