如何在接下“Delete”键后不会删除字符,不知此问题应归哪位,请管理员帮忙归类(100分)

  • 主题发起人 主题发起人 popogens
  • 开始时间 开始时间
P

popogens

Unregistered / Unconfirmed
GUEST, unregistred user!
似乎Tab键和Delete键的按键都是优先处理的,不受KeyDown、Keypress和KeyUp影响。
Tab就算了,但我想让Delete不要删字,如何达到,万谢!
 
比如:
begin
//只在第2和最后第2之间才能修改,两端的不准修改
if (Edit1.SelStart < 2) or (Edit1.SelStart > Length(Edit1.Text) - 2) then
begin
Key := #0;
end;
end;
我想做到什么大家应该知道了,但是上述代码其他功能都达到了,但让我郁闷的是Delete键照样可以删字。
 
可以让在EditKeyDown事件中让Delete键失效
procedure TForm1.Edit1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if key = VK_DELETE then
key := 0;
end;
 
Keypress就可以处理了 不知道你怎么用的
if not (Key in ['0'..'9',#8,#13]) then
Key := #0;
这里只能相应0-9 还有回车和回退 你把 delete键值找到就OK了
 
自己己解决,由于我一开始还未知道无论哪中方法都是不能禁止录入中文的,所以,无论是down时 key := 0,还是press时 key := #0都是不行的,只能在down时判断符合条件的readonly:=true。谢谢。
 
后退
顶部