掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ワーカースレッドがメッセージを受信するためには? (ID:16816)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
https://www.petitmonte.com/bbs/answers?question_id=2895 を拝見させていただき、ワーカースレッドがメッセージの受信が出来ないことを理解しましたが、 http://www.para.tutics.tut.ac.jp/~ohno/mu/devroom/delphi_qa_g.htmlには「ウィンドウハンドルを持たないコンポーネントにメッセージを受信させたい」方法が記載されています。 その方法とは、AllocateHWndを使いメッセージとハンドラ関数を結びつけるものです。メッセージポンプが要りません。(わたしはそう認識しました) ワーカースレッドがメッセージ受信が出来ないのは、メッセージポンプがないからという理由だけと思い、上記方法でならウィンドウハンドルを持たないワーカースレッドにメッセージを受信させることが出来るのではないかと考えました。 そこでTThreadの派生クラスを作成し、上記方法を試してみたところ、コンストラクタCreateを宣言している箇所で「静的メソッドはオーバーライドできません」とエラーが出てしまいます。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ type ThreadTest = class(TThread) private FHandle:HWND; public property Handle:HWND read FHandle; constructor Create(AOwner:TComponent); override; destructor Destroy; override; protected procedure Execute; override; procedure WndProc(var Msg:TMessage); end; ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ TThreadクラスのコンストラクタCreateはオーバーライドできませんか? そもそも作成したクラス(TThreadTest)がコンポーネントではないのでこの方法は使えないのでしょうか? 独自の解釈で、見当違いのことを言っているかもしれませんがよろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.