Tips.01 コンポーネントの作り方
コンポーネントでウィンドウハンドルを持つ

グラフィックは使用しないが、システムからのメッセージは受け取りたい場合があります。その場合は,
AllocateHWnd( void __fastcall (__closure*)(TMessage&) )
DeallocateHWnd( HANDLE )
を使用します。 まず、コンストラクタでハンドルを取得します。

__fastcall TEventTimer::TEventTimer(TComponent* Owner) throw(EOutOfResources)
: TComponent(Owner)
{
    FData = new TStringList();
    FInternalEvent = InitialEvent;
    this->FHandle = AllocateHWnd(WndProc);
}
//メッセージのディスパッチャ
void __fastcall TEventTimer::WndProc( TMessage& Msg)
{
...
}

次にデストラクタでハンドルを開放します、

__fastcall TEventTimer::~TEventTimer()
{
    this->SetEnable(false);
    DeallocateHWnd( this->FHandle );
    for(int i = 0 ; i < this->FData->Count ; i++)
    {
         delete this->FData->Objects[i];
    }
}
戻る [参照] TEventTimer