4

フォームが閉じたとき、またはアプリケーションが終了したときにストレージにデータを書き出そうとしましたが、成功しませんでした。

私は最初にフォームユニットから試しました

procedure TForm1.FinalizeObject;
begin
inherited;
SaveData;
end; 

procedure TForm1.FinalizeObject;
begin 
 SaveData;  
 inherited;
end; 

これらの試みはどちらも機能しなかったため、コードを再配置してプロジェクトのユニットから試しました。

procedure TApplication.ApplicationClosing;
begin 
 SaveData; 
 inherited;
end; 

procedure TApplication.ApplicationClosing;
begin 
 inherited; 
 SaveData;
end; 

SaveDataの最初の行としてw3_showmessageがあり、呼び出されることはありません。したがって、これら4つのメソッドのいずれかがトリガーされていることを確認できれば、そのうちの1つを使用できます。

私は何が間違っているのですか?ありがとう

4

1 に答える 1

2

執筆時点で、Smartはアプリケーションオブジェクトに2つの新しいイベントを公開しています。

  • OnUnload
  • OnBeforeUnload

これらにより、シャットダウンシーケンスの処理が容易になります。スマートjavascriptブートストラップもapplication.terminate()を自動的に呼び出すようになったため、コードは正常に機能するはずです。

于 2012-07-10T07:45:17.413 に答える