1

私の FoxPro プログラムには、右上に終了ボタンと通常の最小/最大/X ボタンがあり、いずれかを使用すると、プログラムが消えて適切に閉じたように見えます。しかし、タスク マネージャーを確認すると、まだ実行中であることがわかります。

これは私の main.prg ファイルです:

ON SHUTDOWN CLEAR EVENTS
with _screen
.visible = .f.
endwith

DO FORM locations\form1
READ EVENTS
ON SHUTDOWN 

これは、終了ボタンの「クリック」イベントのコードです。

unlock all
close database all
clear events
RELEASE ALL
quit

私のプログラムにはフォームが 1 つしかなく、それがトップレベルに設定されています...これを修正する方法について何か提案はありますか?

あなたの時間と助けをありがとう:)

4

2 に答える 2

2

IDE (開発環境) から VFP を実行していて、_Screen.Visible = .F. を実行している場合、メインの VFP 画面を隠しており、システムが直接そこに戻っている可能性があります。正式に辞めることはできません。

MAIN.PRG で、コール スタック内に表示される別の「関数」として、以下を下部に配置します。

function CloseMyApp
   */ For now, just to "ignore" any errors of any dangling objects trying to get released
   */ and otherwise might be HIDING an error upon shutdown.
   on error *

   */ NOW, clear the event handler and close everything else down
   clear events
   close database all
   close tables
   on shutdown 

   quit
endfunc 

次に、開始時に ON SHUTDOWN を変更してこの「関数」を呼び出します...現在、クリアイベントの単一コマンドのみを発行しています。このようにして、読み取りイベントをクリアするだけでなく、閉じる前に一連の「クリーンアップ」操作をまとめることができます。

ON SHUTDOWN Do CloseMyApp in Main.PRG
于 2011-06-28T17:56:29.920 に答える
0

フォーム (あなたのボタン) の EXIT ボタンをクリックすると、フォームが閉じて、アプリケーションが正しく閉じますか?

その場合、ボタンが「cmdExit」と呼ばれていると仮定して、この行をフォームの「UNLOAD」イベントに追加します

THISFORM.cmdExit.click()

于 2011-08-11T14:20:01.217 に答える