netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2007-02-10 [長年日記] ▲
_ [Delphi] ヘルプよりソースコード ▲
BDS 2006 付属のヘルプには,TApplication クラスの Handle プロパティは「アプリケーションのメインフォーム(ウィンドウ)のウィンドウハンドルへのアクセスを提供します。」と書いてあります.しかし,ウィンドウをアクティブにするSetForegroundWindow(Application.Handle)
を呼び出してみたら,なぜか一瞬フォーカスが外れてしまうという妙な問題に遭遇しました.
で,よく調べてみたら,TApplication にはヘルプには載ってない MainFormHandle プロパティというのがくっついていて(コード補完では出てくる),こちらがウィンドウハンドルを保持していました.元の Handle プロパティのほうは別ハンドルを指しているようです.
Delphi の場合,昔から VCL のソースが付いているからかもしれませんが,未だにヘルプは当てにならないようです.結局,ソースを読んで VCL の振る舞いを理解することで,(実装に近いという意味で)低水準のノウハウが蓄積されている気がします.
ネットで検索していても,Win32 APIの使い方に関する情報はかなり見つかるものの,それをコンポーネント化したものは少ないようです.API 1つか2つで終わる程度のことが多いというのもあるかもしれません.