TO:zqqxh
呵呵,
我可不是高手哦。
以下代码增加了HOTKEY功能。
可以考虑将TEdit改为TLabeledEdit,uses ExtCtrls即可。
{ 增加了可以Hotkey属性与OnHotkey事件 }
{ 因为在OnKeyPress中检测,所以不能使用组合键 }
const
WM_MYHOTKEY = WM_USER + 999;
//......
private
FHotkey : char; //定义的热键
FOnHotkey : TNotifyEvent; //热键对应的事件
procedure GetHotkey(var Message: TMessage);message WM_MYHOTKEY; //自定义热键消息
//......
published
property OnHotkey : TNotifyEvent read FOnHotkey write FOnHotkey;
property Hotkey : char read FHotkey write FHotkey default #0;
end;
implementation
procedure TFilterEdit.GetHotkey(var Message: TMessage);//message WM_MYHOTKEY;
begin
if Assigned(FOnHotkey) then
FOnHotkey(Self);
end;
procedure TFilterEdit.KeyPress(var Key: Char);
begin
if FHotkey = key then
begin
key := #0;
SendMessage(handle,WM_MYHOTKEY,0,0);
end;
if not(Key in [#8,#9,#13,#27]) then //除BackSpace,Tab,Enter,Esc键外
//......
end;