いつもお世話になっています。
MessageDlgを使っているのですが
ある特定の場合に限って、MessageDlgがFormの後ろに表示せれる
ような状態になっていしまいます。
Formをクリックすると、MessageDlgがFormの上に表示されるのですが
何か原因があるのでしょうか?
初歩的な質問かもしれませんが、ご指導よろしくお願いします。
Halbow です。
> ある特定の場合に限って、MessageDlgがFormの後ろに表示せれる
「ある特定の場合」が分からないと答えようがありません。
# InputBox はどうなったんでしょうか。
MessageDlgを呼び出すFormがStayOnTopの場合そんなことも起きるかな?
呼び出す前にStayOnTopをはずすか、StayOnTopにしないようにするとか…
「ある特定の場合」を回避すればよろしいかと。
ある特定の場合というのは、
今、Form1から他のexeファイル(実行ファイル)Form2を呼び出して
ある変数をForm2からForm1のコンポーネント(TMaskEdit)にsendmessageとして送るようなプログラムを書いています。
Form1のほうでは、MaskEditのChangeイベントに
プログラムを書いています。
Changeイベントのプログラムで、MessageDlgを使っています。
実行させると、XPの場合うまくいくのですが、
98で動かしてみると、MessageDlgがForm1の後ろに隠れてしまい
Form1をクリックすると、MessageDlgが前に表示されるのですが
何か原因があるのでしょうか?
わかりにくい説明で申し訳ありませんが
ご指導よろしくお願いします。
ちなみにstayOnTopにはしていません。
Halbow さん # InputBox の件は、いろいろ試しています。
おかげさまでどうにかできそうです。
http://forum.nifty.com/fdelphi/faq/00093.htm
皆様、ありがとうございます。
SetWindowPos(Application.Handle, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE);
を使うと、解決しました。
SetForegroundWindow(Form1.Handle);
は、98では使えないみたいですね。
大変勉強になりました。
忘れてました。
ツイート | ![]() |