異なるアプリケーション間でのフォーム操作禁止にするには


佐伯  2009-04-24 20:37:13  No: 34186

いつもお世話になっております。
Delphi2006を使用しています。

現在、メインPGMから他アプリケーションを呼ぶ
処理を行っています。

procedure TCS01000f1.ButtonClick(Sender: TObject);
begin
  ShellExecute(Application.handle,'open','PGM名',nil,nil,SW_Show);
end;

上記のように、他アプリケーションを呼んでいるのですが、
呼び出された場合、呼び出し元のPGMを操作不可にしたいのです。

もしお分かりの方、または参考HPなどをご存知の方は
お教えいただけると助かります。

以上、宜しくお願い致します。


Manbon  2009-04-24 22:46:04  No: 34187

操作不可にして、復活させないのであれば
終了させればいいのでは???


佐伯  2009-04-24 23:09:51  No: 34188

Manbonさん、返信ありがとうございます。

呼び出し元にはボタンが複数あるため、
呼び出した画面を閉じ、また呼び出し元に戻り、
別の画面を呼び出す、ということをしたいのです。

説明不足で申し訳ありません。


Ex  2009-04-24 23:42:48  No: 34189

ShellExecuteExを使えば、呼び出したアプリケーションが終了するまで待つかどうか指定できます。
待ちっぱなしにしておけば、その間呼び出し元は固まって操作できなくなりますし、
もし完全に固まるのが嫌ならプロセスハンドルをもらって、ProcessMessagesしながら終了を待てばいいかと。
(もちろんその前に自身のEnabled=falseにしておく)
これらのキーワードで過去のトピックを検索すれば例が出てくると思います。


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

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






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