请教一下(key <#8)or(Key>#8)and(key <#48)or(key>#57)是什么意思(100分)

  • 主题发起人 主题发起人 jison
  • 开始时间 开始时间
J

jison

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟我初学delphi所以有很多不懂,今天看到一串代码是这样写的
procedure TForm7.Edit11KeyPress(Sender: TObject
var Key: Char);
var
m: Boolean;
begin
m := (key <#8)or(Key>#8)and(key <#48)or(key>#57);
if m then
key := #0;
end;
请问:m := (key <#8)or(Key>#8)and(key <#48)or(key>#57);
这句话的含义是什么啊?先谢了*_*
 
怎么没有人回答啊。哎!
 
是判断用户是否按下了特定的键。#8一类的代表键值。那一行本身的逻辑也可以用if then语句写,效果一样。
 
这句话的意思是只能在Edit1中输入0..9数字键和回退键(BackSpace);
但代码可以优化如下:
if (key<>#8) and (key<#48) or (key>#57) then key := #0;
 
就是看你输入的文本是不是在0到9内,#8就是对删除键的特别处理
不是在0-9的一律不忽略
 
谢了各位!
 
后退
顶部