如题
解决方案 »
- 引用传递的变量的问题?
- 最近找工作真头疼,大虾们支下招!
- 为什么ini文件读写相同报错
- Delphi一个窗口最多可以放置多少个控件??(VB的窗口最多容纳256)
- 想搜集FR的各种技巧及问题解决方法!(详情见贴内!)
- 我的钩子函数为什么一出调用他的窗体就失效?
- 如何用DELPHI拦截封包??
- 菜鸟问题:Delphi 中如何像 Sql Server 2000 中的保存图片!
- 请问Delphi7的内部版本号,D6是140..
- 我用DBGRID显示不停插入的信息,如何让记录到了DBGRID底时,刷新后再回到DBGRID的上面..
- 由谁能解决我的那个问题我将给出1000分
- 我做一个零售管理系统,在开发前台收银介面时,怎样实现F9是打印。意思是说无论焦点在哪个控件上,按F9都会打印。
1、用HOOK挂钩是肯定能做的到的;
2、获取按键,在WM_Char消息事件中自己处理按键消息,过滤掉你说的那几个键!
OK
if key in ['0','3','7','9'] then key:=#0;
先声明 procedure KeyPress (var Key: Char); override;
还有property OnKeyPress;
然后
procedure TFlatSpinEditInteger.KeyPress (var Key: Char);
begin
if key in ['0','3','7','9'] then key:=#0;
if Key <> #0 then
inherited KeyPress(Key);
end;
begin
inherited;
if key in ['0','3','7','9'] then key:=#0;
end;
也可以使用api函数,或者拦截消息等方法
procedure TMyEdit.KeyPress (var Key: Char);
begin
if key in ['0','3','7','9']
then
key:=#0;
else
inherited KeyPress(Key);
end;
TMyEdit是你的类名。