帮忙看看这段程序,我用了函数ASC()把普通字符转换成ASCII码来判断输入的信息是否都是数值行,如果不是就提示必须输入数值,可是程序运行时总是提示我没有定义‘ASC’,我不知道为什么有这个错误,难道系统本身的函数也需要定义吗?请各位帮忙看看,谢谢!
procedure ifNum(CDSName:TclientDataSet;Fname:string);
var
len,i:integer; //len表示字段长度, i为循环计数变量
X,aa,curFname:string; //X:取得的单个字符;aa为当前输入的字段值;curFname:当前数据字段名
begin
aa:=CDSName.fieldbyname(Fname).asstring;
len:=length(aa);
if len >0 then
begin
i:=1;
for i:=1 to len do
begin
x:=copy(aa,i,1);
if (Asc(x)<48) or (Asc(x)>57) then //不是0-9之间的数字
begin
curFname := CDSName.FieldByName(Fname).DisplayName;
MessageDlg(curFname+'必须为数值型,请重新录入!', mtconfirmation, [mbOK], 0);
Abort;
end;
end;
end;
end;
procedure ifNum(CDSName:TclientDataSet;Fname:string);
var
len,i:integer; //len表示字段长度, i为循环计数变量
X,aa,curFname:string; //X:取得的单个字符;aa为当前输入的字段值;curFname:当前数据字段名
begin
aa:=CDSName.fieldbyname(Fname).asstring;
len:=length(aa);
if len >0 then
begin
i:=1;
for i:=1 to len do
begin
x:=copy(aa,i,1);
if (Asc(x)<48) or (Asc(x)>57) then //不是0-9之间的数字
begin
curFname := CDSName.FieldByName(Fname).DisplayName;
MessageDlg(curFname+'必须为数值型,请重新录入!', mtconfirmation, [mbOK], 0);
Abort;
end;
end;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货