我想停止我的应用程序时,我的位图完全保存?如何将OnComplete事件添加到bitmap.SaveToFile('img.bmp');
0
A
回答
7
除非你调用该方法在一个单独的线程我相当肯定,这将是完全保存处该方法返回点:
bitmap.SaveToFile(..);
// file is completely saved at this point
是什么导致你相信,它是不是在这一点完全保存?
唯一的问题可能是“懒惰的写入”Windows本身可能还没有完成将文件物理写入光盘的业务,但就您的应用程序(或任何其他应用程序)而言,这是无关。如果您在Windows完成提交文件之前尝试访问该文件,该应用程序将简单地“阻止”,直到它可以安全地访问该文件,但您不需要专门处理该文件,它就会“正常工作”。
0
如果你想阻止你的应用程序完全有几个选项:
1)关闭的主要形式。当你关闭主窗体时,应用程序将关闭。
procedure TForm1.SaveAndClose(Filename:String);
begin
Bitmap.SaveToFile(filename);
Application.Mainform.Close;
end;
2)呼叫Application.Terminate。这将突然关闭应用程序,但会运行任何终结代码。它通常在应用程序收到WM_Quit消息或主窗体关闭时调用。
procedure TForm1.SaveAndClose(Filename:String);
begin
Bitmap.SaveToFile(filename);
Application.Terminate;
end;
3)邮政WM_CLOSE到应用程序/主要形式。这具有附加的优点,即处理队列中的任何其他消息。这相当于按下CTRL-F4或按主窗体右上角的“X”。唯一的问题是,如果消息队列已满,那么它可能永远达不到表单(很少)。
procedure TForm1.SaveAndClose(Filename:String);
begin
Bitmap.SaveToFile(filename);
postMessage(Application.MainForm,wm_close,0,0):
end;
4)呼叫暂停(的ExitCode:整数)。这有点极端,会终止应用程序。终结代码仍将运行,但内存不保证被释放。或者,您可以设置退出代码,该代码将返回给调用应用程序。
procedure TForm1.SaveAndClose(Filename:String);
begin
Bitmap.SaveToFile(filename);
Halt(0);
end;
相关问题
- 1. 如何将事件添加到URLLoader类?
- 2. 如何将OnClick事件添加到TCustomControl?
- 3. 如何将Click事件添加到Ext.Img?
- 4. Uploadify onComplete事件
- 5. 将事件添加到DataGridComboBoxColumn
- 6. 将事件添加到WinForms?
- 7. 将事件添加到jQuery
- 8. 如何将事件添加到刚刚添加的jQuery元素?
- 9. iphone sdk:如何将事件添加到UIButton UIWebView中添加
- 10. dojo.place的oncomplete事件
- 11. 如何将nhibernate事务添加到ninject?
- 12. 如何将事件添加到由AJAX附加的元素?
- 13. 如何将事件添加到Silverlight中的模板控件?
- 14. 如何将“点击”事件添加到SWF文件
- 15. 如何在Application_Start事件中将控件添加到网页
- 16. 如何将条件添加到$(window).resize jquery中的事件?
- 17. WebOS onComplete事件或模拟
- 18. 将事件添加到动态添加的控件
- 19. 将OnClick事件添加到Html.RadioButton
- 20. 将Postbuild事件添加到项目中
- 21. - 将一个keydown事件添加到HTMLUListElement
- 22. 将事件侦听器添加到iframe
- 23. 将事件添加到新节点
- 24. 将javascript事件添加到jqGrid
- 25. 将“this”添加到事件侦听器?
- 26. 将属性添加到基本事件
- 27. 将此事件添加到工具栏
- 28. Wheelnav将OnMouseDown事件添加到Spreader
- 29. 将css类添加到javascript事件
- 30. 经典ASP将事件添加到Outlook