喫茶XRAYトップページ


[7390] なにがなんでも最前面にダイアログを表示するには?返信 削除
2014/3/20 (木) 14:15:25 pon
いくつかのアプリケーションが動いていて画面がそこそこ埋まっています。
自作のアプリで、処理が終わったらダイアログを表示していますが、それが
すでに開いているウィンドの後ろに表示されてしまって、操作が続かなくなって
しまいます。タイトル通り何ななんでも画面の一番前に表示するにはどうしたら
いいのでしょうか?

[7391] ウィンドウを最前面にする返信 削除
2014/3/20 (木) 20:52:23 Mr.XRAY
▼ ponさん

画面上での,ウィンドウの視覚的な階層位置を Z オーダーといいます.
階層,つまり,奥行き,Z 軸というわけです.
Z オーダーが最上位のウィンドウが最前面に表示されます.

したがって,そのダイアログのウィンドウを Z オーダーの最上位にする
ようにすればいいことになります.
そのダイアログを TForm で作成したのであれば,
該当するプロパティがあります.

また,Windows API の関数も使用できます.
これはウィンドウハンドルを使用します.

ShowMessage 等は,ShowMessage ウィンドウ(ダイアログ) を表示する前に,
そのアプリを最前面にすれば,自動的に最前面に表示されるハズです.
ダイアログ関係には,以下のようなものがあります.
使用する方法,関数によって処理を考えることになります.

Windows API のダイアログ関数
MessageBox
MessageBoxEx

[ダイアログ サポート ルーチン]
http://docwiki.embarcadero.com/RADStudio/XE5/ja/%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0_%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88_%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3

[7392] Re:ウィンドウを最前面にする返信 削除
2014/3/20 (木) 21:01:49 Mr.XRAY
ダイアログは直訳すると「対話」です.

ウィンドウを,そのアプリを使用しているユーザに,何かを知らせたり
入力用等に使用する場合に「ダイアログ」と言っていますが,
他のウィンドウとの明確な区別があるわけではありません.

ウィンドウの使用目的(?) によるのではないかと思います(多分).


[7393] Re2:ウィンドウを最前面にする返信 削除
2014/3/20 (木) 22:38:53 pon
▼ Mr.XRAYさん

 ありがとうございます。いろいろ試してみます。

[7394] 常に最前面に表示するアプリ返信 削除
2014/3/21 (金) 23:08:59 Mr.XRAY
> 何がなんでも画面の一番前に表示するにはどうしたら

pon さんの場合はダイアログですが,これが,もし,アプリの場合.

ある人が,常に最前面に表示するアプリを作成したとします.
別の人が,同じように,自分の作成したアプリを常に最前面にしたいと思いました.
そして,そのようなアプリを作成したとします.
この二つのアプリを動作させた時,一体どうなるでしょう ?

関連して,こんなことを考えてみると,更に実際にやってみると
ちょっとは面白いかも知れません.
えっ,私ですか ? テスト済みです.ハイ.


INCM/CMT
Cyclamen v3.82