launch的方法要改成这样: var wstr:widestring; i,j:integer; begin wstr:=edit1.text; i:=length(wstr); j:=edit1.gettextlen*2; if i<>j then showmessage('请输入汉字'); end; edit1.gettextlen是用单字节计算,汉字占两个字节,字母数字占一个字节。
launch(飞星子) 的方法好象不行
launch的方法的确实现不了. 有别的方法吗?
是错了一点; var wstr:widestring; i,j:integer; begin edit1.text:=trim(edit1.text); wstr:=edit1.text; i:=length(wstr)*2; j:=length(edit1.text); if i<>j then showmessage('请输入汉字'); end;
纯粹是误炸..我对此表示遗憾,不是道歉; 因为我是根据9x 年Delphi提供的资料的.NI
to lwk_hlj 怎么判断是不是英文字符?
var i:integer; begin for i:=1 to length(edit1.text)-1 do if (edit1.text[i] in [#$A1..#$FE]) then Result:=True; //是汉字
判断第一个字符的ASC码〉128就好了。
分数这么少,答的这么多,可见是菜问题 var i,english_count:integer; str:string begin str:=edit1.text; english_count:=0; for i=1 to length(str) do begin if word(str[i])<127 then english_count:=english_count+1; end; showmessage(pchar('共有'+inttostr(english_count)+'个英文字母')) end;
var wstr:widestring; i,j:integer; begin edit1.text:=trim(edit1.text); wstr:=edit1.text; i:=length(wstr)*2; j:=length(edit1.text); if i<>j then showmessage('请输入汉字'); end; 这个是绝对Work的;只要你的系统是双字节(unicode)系统<中文Win98,中文Win2k,中文WinNT>; 使用 widestring时,无论是一个汉字或一个英文字母,他计算的长度是1; 而使用string时,一个汉字长度是2,一个英文字母的长度是1;
wstr:widestring;
i,j:integer;
begin
wstr:=edit1.text;
i:=length(wstr);
j:=length(edit1.text)*2;
if i<>j then showmessage('请输入汉字');
end;
var
wstr:widestring;
i,j:integer;
begin
wstr:=edit1.text;
i:=length(wstr);
j:=edit1.gettextlen*2;
if i<>j then showmessage('请输入汉字');
end;
edit1.gettextlen是用单字节计算,汉字占两个字节,字母数字占一个字节。
有别的方法吗?
var
wstr:widestring;
i,j:integer;
begin
edit1.text:=trim(edit1.text);
wstr:=edit1.text;
i:=length(wstr)*2;
j:=length(edit1.text);
if i<>j then showmessage('请输入汉字');
end;
因为我是根据9x 年Delphi提供的资料的.NI
怎么判断是不是英文字符?
begin
for i:=1 to length(edit1.text)-1 do
if (edit1.text[i] in [#$A1..#$FE]) then
Result:=True; //是汉字
var
i,english_count:integer;
str:string
begin
str:=edit1.text;
english_count:=0;
for i=1 to length(str) do
begin
if word(str[i])<127 then english_count:=english_count+1;
end;
showmessage(pchar('共有'+inttostr(english_count)+'个英文字母'))
end;
wstr:widestring;
i,j:integer;
begin
edit1.text:=trim(edit1.text);
wstr:=edit1.text;
i:=length(wstr)*2;
j:=length(edit1.text);
if i<>j then showmessage('请输入汉字');
end;
这个是绝对Work的;只要你的系统是双字节(unicode)系统<中文Win98,中文Win2k,中文WinNT>;
使用 widestring时,无论是一个汉字或一个英文字母,他计算的长度是1;
而使用string时,一个汉字长度是2,一个英文字母的长度是1;