如何在程序中屏蔽掉Alt+F4?立即给分
解决方案 »
- 请问如何设置TQRRichText的字体。
- 发现delphi的bug^_^有知道为什么的帮忙解释一下,如果没遇到过的也可以看看免得出现同样问题不知道怎么解决
- com的问题,急!
- 关于Caret的问题,一定给分!
- 跪求帮忙,感激不尽
- 80分求助!滚动ScrollBox的Scrollbar,结束滚动时,可以触发什么事件?请高手帮忙!
- 今天看了一个新闻,说微软在搞.net平台上的动态语言(脚本语言)
- 高薪诚聘Delphi软件工程师
- C#调用delphi写的DLL
- 300分求助:1.怎样用BDE动态改变DBASE数据库的表结构,Bdi?2.怎样在DBASE数据库中真真地插入一条记录?
- 菜鸟提问
- 20分求救一个问题
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations } procedure HotKeyDown(var Msg: Tmessage);
message WM_HOTKEY;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
HotKeyId: Integer;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
begin
HotKeyId := GlobalAddAtom('HotKey') - $C000;
RegisterHotKey(Handle, hotkeyid, Mod_Alt, VK_F4);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotKey(handle, HotKeyId);
end;procedure TForm1.HotKeyDown(var Msg: Tmessage);
begin
if (Msg.LparamLo = Mod_Alt) And (Msg.LParamHi = VK_F4) then
begin
SHOWMESSAGE('AA');//DO YOURTHINGS
end;
END;
END.
Shift: TShiftState);
begin
{屏蔽 ALT+F4}
if (shift = [ssAlt]) and (key = vk_F4) then
begin
shift := [];
key := 0;
end;
end;
设置一个条件,当条件满足,再允许退出
我试了一下!
还是是Onclose里写代码实现吧
你可以设自已的允许关闭条件了
在窗体中放入一个TPopupMemu控件,增加一菜单项,把该菜单项的ShortCut属性设置为Alt+F4
把窗体的PopupMenu属性设置为TPopupMemu控件名
Shao666的方法虽然笨但是管用,然后将该菜单项设为visble:=false...
if (shift = [ssAlt]) and (key = vk_F4) then
begin
shift := [];
key := 0;
end;
这个方法行的!但是除了要写在form的KeyDown事件里,所有能获得焦点的控件的KeyDown里权要写!你可以写个函数,然后调用就行了