«前の日記(2007-02-09) 最新 次の日記(2007-02-12)» 編集

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2007-02-10 [長年日記]

_ [Delphi] ヘルプよりソースコード

BDS 2006 付属のヘルプには,TApplication クラスの Handle プロパティは「アプリケーションのメインフォーム(ウィンドウ)のウィンドウハンドルへのアクセスを提供します。」と書いてあります.しかし,ウィンドウをアクティブにするSetForegroundWindow(Application.Handle)を呼び出してみたら,なぜか一瞬フォーカスが外れてしまうという妙な問題に遭遇しました.

で,よく調べてみたら,TApplication にはヘルプには載ってない MainFormHandle プロパティというのがくっついていて(コード補完では出てくる),こちらがウィンドウハンドルを保持していました.元の Handle プロパティのほうは別ハンドルを指しているようです.

Delphi の場合,昔から VCL のソースが付いているからかもしれませんが,未だにヘルプは当てにならないようです.結局,ソースを読んで VCL の振る舞いを理解することで,(実装に近いという意味で)低水準のノウハウが蓄積されている気がします.

ネットで検索していても,Win32 APIの使い方に関する情報はかなり見つかるものの,それをコンポーネント化したものは少ないようです.API 1つか2つで終わる程度のことが多いというのもあるかもしれません.

お名前:
E-mail:
右の画像に書かれている文字列を入力してください:
コメント: