keypress事件 if ord(key) >= $A1 then showmessage('汉字');
那只能用加个双保险 keypress事件 if ord(key) >= $A1 then showmessage('汉字');ONEXIT: ByteType;有点麻烦 if ByteType(edit1.text,6) = mbSingleByte then //mbSingleByte 非汉字,单字节字符 //mbLeadByte 汉字第一位 //mbTrailByte 汉字第二位麻烦啊 有没有更好的呢??
onchangeif text<>'' then for i:= 1 to length(text)if ord(str[i])>$A1 then 汉字end
keypress事件 if ord(key) >= $A1 then edit1.text:=''; showmessage('汉字或者标点'); 中问符号也是双字节的
procedure TForm1.Edit1Change(Sender: TObject); var I: Integer; begin for I := 1 to Length(Edit1.Text) do if ByteType(Edit1.Text, I) <> mbSingleByte then begin ShowMessage('Error'); Edit1.Clear; Break ; end ; end;
建一个汉字标点和英文标点符号的集合(Set of .....),在Edit.OnExit中判断: 如果在集合内,则不予通过 .
有人告之GBK,GB2312的代码集哪儿找也行啊!
if ord(key) >= $A1 then
showmessage('汉字');
keypress事件
if ord(key) >= $A1 then
showmessage('汉字');ONEXIT:
ByteType;有点麻烦
if ByteType(edit1.text,6) = mbSingleByte then
//mbSingleByte 非汉字,单字节字符
//mbLeadByte 汉字第一位
//mbTrailByte 汉字第二位麻烦啊
有没有更好的呢??
if ord(key) >= $A1 then
edit1.text:='';
showmessage('汉字或者标点');
中问符号也是双字节的
var
I: Integer;
begin
for I := 1 to Length(Edit1.Text) do
if ByteType(Edit1.Text, I) <> mbSingleByte then
begin
ShowMessage('Error');
Edit1.Clear;
Break ;
end ;
end;
如果在集合内,则不予通过 .
所以我在前面问过大家
哪里能找到Gb2312,Gbk的字符集啊