摘要载入中… 请稍等…
内容载入中… 请稍等…
| ◎→ | 本类最新 |
|
在DELPHI中映射网络驱动器 在Delphi中实现对目录拷贝、删除 在Delphi中接受文件拖放 在Delphi中定位文件位置 用代码打开屏幕保护 用Delphi编程得到OS的类型 用Delphi编码实现程序自启动 |
|
| ◎→相关资源 | |
| C语言入门视频教程 C#编程WinForm入门视频 Asp.net入门视频教程下载 VC++编程视频教程下载 VB窗体文章 HTML入门教程 Deiphi实例教程 Deiphi窗体文章 Deiphi数据库编程 Deiphi网络编程 Deiphi图形图象文章 Deiphi系统文件 | |
| ◎→ | 热门资源 |
| 反查漢字拼音 防止多个实例公用程序 倪光南力挺中国文档标准 网银17200元神秘蒸发 动画关闭窗口的示例 动态调整显示器的分辨率 动态贺卡EXE生成器 |
|
有时候程序在运行当中,不允许别的程序或人为的关闭计算机,除非应用程序知道windows将要退出,其实这样很简单,我们都知道系统将要关闭时,会向每一个程序发送WM_QUERYENDSESSION这条关机消息,只要我们的程序接受到此消息后,做恰当的处理即刻完成我们所需要的。
处理windows消息有好几种,在这里我们利用Application的OnMessage事件,建立响应该事件的过程即可!如下面的例子:
unit unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
procedure AppMessageHandler(var Msg:TMsg; var Handled:Boolean);//声明系统处理消息过程,响应Application的OnMessage事件的过程必须为TMessageEvent类型;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.AppMessageHandler(var Msg:TMsg; var Handled:Boolean);
begin
if Msg.message=WM_QueryEndSession then//如果收到的消息为关闭计算机的消息时,进行特别处理,因为只是一个例子,我只写出弹出对话框,大家可以根据自己程序的需要进行响应的处理;
begin
if messagedlg('shutdown?',mtconfirmation,mbyesnocancel,0)= mryes then
Handled:=true
else
Handled:=false;
end;
end;
end.
最后在程序的DPR文件中,创建窗体之后但在调用Application.Run前加入
Application.OnMessage:=Form1.AppMessageHandler;即可!
| 芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们 |