MessageDlgについて

解決


理恵  2003-12-24 22:57:07  No: 6389

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


Halbow  2003-12-25 00:17:13  No: 6390

Halbow です。

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

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

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


そこのけ  2003-12-25 00:20:33  No: 6391

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


にしの  2003-12-25 01:21:30  No: 6392

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


理恵  2003-12-25 02:36:52  No: 6393

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

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

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

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

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


_  2003-12-25 07:37:47  No: 6394

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


理恵  2003-12-25 22:15:50  No: 6395

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


理恵  2003-12-25 22:16:27  No: 6396

忘れてました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加