実行中のプログラムを途中停止させるには?


TOSHI-Ro  2003-02-06 09:58:00  No: 2826

Delphi6で作成したプログラムを実行途中で終わらせたい時には
どのような方法があるのでしょうか?
ファンクションキーを使うのが手っ取り早いと思ったのですが
設定の仕方がわかりません。ヘルプを見るとエディタオプションで設定すると
書いてありました。

今のままでは実行し始めたらCloseして終了する方法しかない状態です。
よい方法があるならば教えては頂けないでしょうか?


TOSHI-Ro  2003-02-06 09:59:11  No: 2827

追加ですが、ファンクションキーを使うとしたら具体的にどのような
方法でやればいいのかも教えて頂けると幸いです。


たかみちえ  URL  2003-02-06 17:28:21  No: 2828

ええと、ファンクションキーに何か割り当てるという行為は、
基本的には何にもしなくていいです。
  TMainMenuなどで、Shortcutプロパティに何か指定すると、
勝手にそれがショートカットキーとして働いてくれます。
  それ以外にショートカットをつけるには、
フォームのOnShortcutなどを使うといいんだと思います。

  ちなみに、WindowsのUIでは常識(?)的なキー(Alt+F4とCtrl+F4)は、
  ほうっておいても勝手に割り当てられてます。

> ファンクションキーを使うとしたら具体的にどのような
  F1に"ヘルプ"。その他、F9(VBではF5)にはコンパイルなどのキー、
F3は"次を検索"などが有名だと思います。
その辺はやっぱり、ほかのソフト(Delphi自体含む)を参考に割り当てていくといいのではないでしょうか?


TOSHI-Ro  2003-02-08 05:02:09  No: 2829

たかちみえさん、ご解答ありがとうございます。
アプリケーション自体を終了させることはできるのですが、
停止させることができません。
この場合の停止は、ある命令を中断して別の命令を行うという
意味です。
イメージ的には割り込み処理が当てはまります。


Taku  2003-02-08 19:42:45  No: 2830

ある命令を中断と言うのは、ループやリピートの途中と言う意味ですか?

その場合は、例えば  stop:boolean;等の変数を用意しておき、判断させては
repeat
      処理
      application.ProcessMessages;
     if stop then break;
 until xxx;

procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
     if Msg.CharCode=VK_F5 then Stop:=true;
end;

これで、F5を押せば処理が停止します。
「ある命令」の内容がわからないのですが、違う答えかも?
又、停止再開を行う場合はスレッドを使う手も有りますヨ


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

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






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