MessageDlgについて

解決


理恵  2003-12-24 13:57:07  No: 6389  IP: 192.*.*.*

いつもお世話になっています。
MessageDlgを使っているのですが
ある特定の場合に限って、MessageDlgがFormの後ろに表示せれる
ような状態になっていしまいます。
Formをクリックすると、MessageDlgがFormの上に表示されるのですが
何か原因があるのでしょうか?
初歩的な質問かもしれませんが、ご指導よろしくお願いします。

編集 削除
Halbow  2003-12-24 15:17:13  No: 6390  IP: 192.*.*.*

Halbow です。

> ある特定の場合に限って、MessageDlgがFormの後ろに表示せれる

「ある特定の場合」が分からないと答えようがありません。

# InputBox はどうなったんでしょうか。

編集 削除
そこのけ  2003-12-24 15:20:33  No: 6391  IP: 192.*.*.*

MessageDlgを呼び出すFormがStayOnTopの場合そんなことも起きるかな?
呼び出す前にStayOnTopをはずすか、StayOnTopにしないようにするとか…

編集 削除
にしの  2003-12-24 16:21:30  No: 6392  IP: 192.*.*.*

「ある特定の場合」を回避すればよろしいかと。

編集 削除
理恵  2003-12-24 17:36:52  No: 6393  IP: 192.*.*.*

ある特定の場合というのは、
今、Form1から他のexeファイル(実行ファイル)Form2を呼び出して
ある変数をForm2からForm1のコンポーネント(TMaskEdit)にsendmessageとして送るようなプログラムを書いています。
Form1のほうでは、MaskEditのChangeイベントに
プログラムを書いています。
Changeイベントのプログラムで、MessageDlgを使っています。

実行させると、XPの場合うまくいくのですが、
98で動かしてみると、MessageDlgがForm1の後ろに隠れてしまい
Form1をクリックすると、MessageDlgが前に表示されるのですが
何か原因があるのでしょうか?

わかりにくい説明で申し訳ありませんが
ご指導よろしくお願いします。

ちなみにstayOnTopにはしていません。

Halbow さん  # InputBox の件は、いろいろ試しています。
おかげさまでどうにかできそうです。

編集 削除
_  2003-12-24 22:37:47  No: 6394  IP: 192.*.*.*

http://forum.nifty.com/fdelphi/faq/00093.htm

編集 削除
理恵  2003-12-25 13:15:50  No: 6395  IP: 192.*.*.*

皆様、ありがとうございます。
 SetWindowPos(Application.Handle, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE); 
を使うと、解決しました。
SetForegroundWindow(Form1.Handle);
は、98では使えないみたいですね。
大変勉強になりました。

編集 削除
理恵  2003-12-25 13:16:27  No: 6396  IP: 192.*.*.*

忘れてました。

編集 削除