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


佐伯  2009-04-24 11:37:13  No: 34186  IP: 192.*.*.*

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

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

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

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

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

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

編集 削除
Manbon  2009-04-24 13:46:04  No: 34187  IP: 192.*.*.*

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

編集 削除
佐伯  2009-04-24 14:09:51  No: 34188  IP: 192.*.*.*

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

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

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

編集 削除
Ex  2009-04-24 14:42:48  No: 34189  IP: 192.*.*.*

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

編集 削除