喫茶XRAYトップページ
[
スレッド全体
]
[8687]
子ウィンドウの探索について
返信
削除
2015/4/12 (日) 09:46:17
qwerty
はじめまして
いつもMr.XRAYさんのサンプルプログラムで勉強させていただいており、
ありがとうございます。
今回「Halbow 資料館 第6章 ウィンドウの階層について」を拝見しながら
いろいろ試しておるところですが、「6−5 子ウィンドウの探索」の
例にあるフォームでLabelが列挙されていないのに気付きました。
自分の検証プログラムでも同様でしたが、Labelが検索対象から外れる理由が
あるのでしょうか。
[8689]
Re:子ウィンドウの探索について
返信
削除
2015/4/12 (日) 10:02:59
Mr.XRAY
▼ qwertyさん
> 例にあるフォームでLabelが列挙されていないのに気付きました。
> 自分の検証プログラムでも同様でしたが、Labelが検索対象から外れる理由が
> あるのでしょうか。
よくぞ訊いてくれました!!
こういうのを待っているんですよ,いつでも.
実はですね.コントロールにはウィンドウハンドルを持っているやつと,
そうでないやつがあるんです.
ウィンドウハンドルについての説明はちょっと置いていて.また機会があれば,
TLabel --- ウィンドウハンドルなし
http://
docwiki.
embarcad
ero.
com/
Librarie
s/
XE8/
ja/
Vcl.
StdCtrls
.
TLabel
TButton -- ウィンドウハンドルあり
http://
docwiki.
embarcad
ero.
com/
Librarie
s/
XE8/
ja/
Vcl.
StdCtrls
.
TButton
この 2 つを見てみると,
TLabel は TGraphicControl
TButton は TWinControl
となっています.TWinControl がウィンドウハンドルを持つコントロールです.
で,本題ですが,ウィンドウ関係の Windows API で検出できるのは,
ウィンドウハンドルを持つコントロールだけなんです.
それで,そういう結果になりますです.
他に疑問や文句があれば,なんなりと.
# 当サイト,いや,喫茶XRAYにもサブスクリプション導入しようかな (笑)
[8693]
Re2:子ウィンドウの探索について
返信
削除
2015/4/12 (日) 13:51:20
qwerty
▼ Mr.XRAYさん
ありがとうございます。
それでは他のアプリケーションのGrpahicControlを検出して操作する
方法はあるのでしょうか。
[8694]
Re3:子ウィンドウの探索について
返信
削除
2015/4/12 (日) 19:51:51
Mr.XRAY
▼ qwertyさん
> それでは他のアプリケーションのGrpahicControlを検出して操作する
> 方法はあるのでしょうか。
そのような専用の関数類はありませんね.
TForm を使用するアプリのプロジェクトで,フォームのコードを見てみてください.
拡張子は .dfm です.テキストエディタでみることができます.
IDE からも見ることができます.
EXE を作成すると,この情報がリソースとして EXE に埋め込まれます.
記憶では RC Data かなんかです.
ここから TLabel の情報を取り出して,操作することは可能かも知れません.
やったことはないですが.
例えば,アプリケーションマニフェストは以下のように取り出せます.
http://
mrxray.
on.
coocan.
jp/
Delphi/
plSample
s/
314_Crea
teAppMan
ifest.
htm#
01
自アプリで,しかも,別途ストリームに保存したコンポーネントの場合です.
EXE のリソースもストリーム操作ですから,可能性はあります.
http://
mrxray.
on.
coocan.
jp/
Delphi/
plSample
s/
130_Save
Componen
t.
htm#
03
もし,他のアプリというのが,自分で開発するのであれば,
外部からのメッセージで取得や操作するような仕組みを作ることは可能です.
[8695]
Re4:子ウィンドウの探索について
返信
削除
2015/4/12 (日) 20:02:36
Mr.XRAY
> TForm を使用するアプリのプロジェクトで,フォームのコードを見てみてください.
> 拡張子は .dfm です.テキストエディタでみることができます.
> IDE からも見ることができます.
こういうのはリソースエディタで確認することがてきます.
また,EXE を展開してもみることができます.
[02_JEDI プロジェクトを使用したファイルの解凍・書庫展開]
http://
mrxray.
on.
coocan.
jp/
Delphi/
plSample
s/
744_JEDI
Archiver
.
htm#
fig6
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82