◆ [Delphi] TFrameを上手に使ってメンテナンス性を向上させる 番外編 ~TFrameをDLLで使うコツ~
どーもボキです。

フレームを利用したウィンドウを持ったDLLでは、フレームを作成する際にエラーが発生してしまう。
それは、TFrameは、EXEのハンドル(Application.Handle)を親にして自身を作成しているから。

EXEプロジェクトの場合は、自身のEXEハンドルを親にしてフレームが作成される。
しかし、DLLの場合、Application.Handle = 0 となっている。
つまり、親とするハンドルがないため、フレーム作成時にエラーが発生してしまう。

このエラーは、DLLのメインとなるフォームに一文を追加することで簡単に回避できる。
これより、DLLを呼び出したEXEのハンドルを親にしてフレームが正常に作成される。
Application.Handle := FindWindow(nil, PChar(Application.Title));

参考サイト

[PR]
by yozda | 2011-02-12 23:36 | プログラミング | Trackback | Comments(0)
トラックバックURL : http://yozda.exblog.jp/tb/12102373
トラックバックする(会員専用) [ヘルプ]
<< ななみちゃんがくれた絵 [Delphi] TFrame... >>