procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Ord(key)<=160 then key:=#0 end;
不对 我是说判断edit.text里输入是不是中文汉字 不是按键盘
if Ord(key)<=160 then key:=#0
var Str1:String; i:integer; begin Str1 := Edit1.Text; for i:=1 to length(Str1) do begin if ord(Str1[i])>128 then begin ShowMessage('有汉字'); Exit; end; end; end;
szTemp := Edit1.text; iLen := length(szTemp); szTemp := copy(szTemp,iLen-1,1); if ord(szTemp)>=127 then showmessage('最后一个字符为汉字!');
procedure TForm1.Edit1Change(Sender: TObject); var szTemp : string; iLen : integer; begin szTemp := Edit1.text; iLen := length(szTemp); szTemp := copy(szTemp,iLen-1,1); if ord(szTemp)>=127 then showmessage('最后一个字符为汉字!'); end;
同意楼上 dawnming(笨小孩) 的帖子
procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; str:string; begin str:=edit1.Text ; j:=length(str); i:=1; while i<j+1 do if ByteType(str,i)=mbSingleByte then begin showmessage('必须都是汉字'); breake; end else i:=i+2; end;
楼顶的,如果你停留在汉字上思考就可能找不出局限的方法。汉字毕竟多。但是英文很少,对吗?你建立一个字符串,把英文字符,包括全角英文 A ,半角英文 A 。甚至所有的Asc码都弄进去。最多才有多少?判断一下。并不困难的。对不对?想法有了,算法可以自己来,简单的。
楼顶的,如果你停留在汉字上思考就可能找不出局限的方法。汉字毕竟多。但是英文很少,对吗?你建立一个字符串,把英文字符,包括全角英文 A ,半角英文 A 。甚至所有的Asc码都弄进去。最多才有多少?判断一下。并不困难的。对不对?想法有了,算法可以自己来,简单的。
begin
if Ord(key)<=160 then
key:=#0
end;
我是说判断edit.text里输入是不是中文汉字
不是按键盘
key:=#0
Str1:String;
i:integer;
begin
Str1 := Edit1.Text;
for i:=1 to length(Str1) do
begin
if ord(Str1[i])>128 then
begin
ShowMessage('有汉字');
Exit;
end;
end;
end;
iLen := length(szTemp);
szTemp := copy(szTemp,iLen-1,1);
if ord(szTemp)>=127 then
showmessage('最后一个字符为汉字!');
var szTemp : string;
iLen : integer;
begin
szTemp := Edit1.text;
iLen := length(szTemp);
szTemp := copy(szTemp,iLen-1,1);
if ord(szTemp)>=127 then
showmessage('最后一个字符为汉字!');
end;
dawnming(笨小孩) 的帖子
var
i,j:integer;
str:string;
begin
str:=edit1.Text ;
j:=length(str);
i:=1;
while i<j+1 do
if ByteType(str,i)=mbSingleByte then
begin
showmessage('必须都是汉字');
breake;
end else i:=i+2;
end;