掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
LazarusでのTOpenDialogのカスタマイズについて (ID:148798)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> // Delphiでは削除すると、TOpenDialogExは開くものの、コンボボックスが追加されない。 Delphi XE5 ですが,ソースコードの DoShow のところに以下の記述があります., ( TCommonDialog.WMInitDialog メソッド内 ) Called only by non-explorer style dialogs 実際テストしてみたら,DoShow は実行されませんでした. ランタイムテーマが無効ならば実行されます. ランタイムテーマが無効の場合は Windows XP と同じスタイルになります. TOpenDialog コンポーネントで表示するダイアログのハンドルは TOpenDialog.Handle ではありません. クラス名が #32770 のウィンドウのハンドルです. たとえ,DoShow メソッドが実行されても,その時点ではダイアログのハンドルは取得できないと思います. このことは,OnShow イベントでも同じです. ローカルフック等を使用すればダイアログのハンドルを取得できます. 以下を参考にしてください. [ 22_ダイアログの表示位置とサイズの制御 - ローカルフック ] http://mrxray.on.coocan.jp/Delphi/Others/Dialogs.htm#22 更に,TComboBox 等の親にするのはダイアログそのものではなく, 一般的にはダイアログ上の子コントロールです. VCL のフォームを親しても,そのフォームに他のコントロールがあるとそれに隠れてしまうのと同じです. 以上は Windows の場合です. Lazarus は使用していませんので,あしからず.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.