Delphi5(UP1)、WindowsXPで開発しています。
【A.exe】では、"FormA1"から"FormA2"をShowModalで表示し、
"FormA2"から【B.exe】をコールしています。
【B.exe】を終了(画面に終了ボタンがあり、それをクリック)すると、
"FormA1"と"FormA2"が入れ替わって表示されてしまいます。
この現象を回避する方法をご存じの方、アドバイスいただけないでしょうか。
何とぞよろしくお願い致しますm(_ _ )m
よくわかりませんけど、
FormA1 で FormA2.ModalShow
とやってA2を表示しますよね。
それでB.exeの終了を検知したら、 FormA2.ModalResult := mrOK
でA2を閉じてしまえばいいんじゃないでしょうか。
入れ替わる事象は再現できませんでしたが
FormA1 から FormA2 を呼ぶときいっそのこと隠してしまう
というのはどうでしょう
procedure TForm1.Button1Click(Sender: TObject);
begin
Hide;
try
FormA2.ShowModal;
finally
Show;
end;
end;
こう?
procedure TFormA2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WndParent := FormA1.Handle;
end;
B.exe が終了するまで、FormA2に帰ってこない作りであるなら、
B.exe のコール
BringWindowToTop(FormA2.Handle);
として、FormA2を前面に出す、というのはどうでしょう。
・∀・です。
なな様、けど様、KHE00221様、こはく様、
ご回答ありがとうございます。
こはく様よりご教示いただいた内容でいけそうです。
助かりました!
ありがとうございましたm(_ _ )m
また、お力添えをいただいた
なな様、けど様、KHE00221様、
ありがとうございました。
…難しかった(おバカな私は理解できなかった)ので、
勉強させていただきます。
皆様、本当にありがとうございました。