if (dbedit2.Text='"') or (dbedit2.Text='~') or (dbedit2.Text='!') or (dbedit2.Text='@') or (dbedit2.Text='#') or (dbedit2.Text='$') or (dbedit2.Text='%') or (dbedit2.Text='^') or (dbedit2.Text='&') then
begin
showmessage('输入错误');
exit;在线等……急,初学者的苦脑
输入单个字符时不报错,两个以上包含一个非法字符时不报错,急救
begin
showmessage('输入错误');
exit;在线等……急,初学者的苦脑
输入单个字符时不报错,两个以上包含一个非法字符时不报错,急救
-------------------------
你说的啥意思啊.
你是想检查输入的字符串中不能有 & ! ? $ 等字符吧.function ChectStr(Const S:String):Boolean;
Const
CO_ERRSTR=['"','`','!','@','#','$','%','^','&'];
var
i,L:Integer;
begin
Result:=True;
L:=Length(S);
for i:=1 to L do
if S[i] in CO_ERRSTR then
begin
Result:=False;
Break;
end;
end;if False=CheckStr(dbedit2.text) then
showmessage('输入错误');
我上面的代码意思是输入单个非法字符时报错,两个字符时却不报错,求求各位老大帮帮忙
Declaration expected but 'if' found
我把ZyxIp的方法复制过来就出现错误,谢谢楼上几位的帮忙
if (dbedit2.Text='"') or (dbedit2.Text='~') or (dbedit2.Text='!') or (dbedit2.Text='@') or (dbedit2.Text='#') or (dbedit2.Text='$') or (dbedit2.Text='%') or (dbedit2.Text='^') or (dbedit2.Text='&') then
begin
showmessage('输入错误');
exit;
end;
你这样,输入一个字符时,可以,当输入1个以上时他当然不可以,dbedit2.Text='"',如果我输入"a,这两个字符,它当然就不报错了,
if False=CheckStr(dbedit2.text) then
showmessage('输入错误');
谢谢你的帮助,我是直接拷贝过来的,毕竟 是初学,
if False=CheckStr(dbedit2.text) then
showmessage('输入错误');这两行代码复制过来了啊,怎么了?不行?那我应该怎么做,麻烦你了,
也可以加我QQ:86690726
在线WAITING YOU
var
i:integer;
strtext,strvalue,bm:string;
begin
function CheckStr(Const S:String):Boolean;
Const
CO_ERRSTR=['"','`','!','@','#','$','%','^','&'];
var
i,L:Integer;
begin
Result:=True;
L:=Length(S);
for i:=1 to L do
if S[i] in CO_ERRSTR then
begin
Result:=False;
Break;
end;
end;if False=CheckStr(dbedit2.text) then
showmessage('输入错误');
IF dbEDIT2.Text='' then
begin
showmessage('姓名不能为空!');
exit;
end;
IF dbEDIT3.Text='' then
begin
showmessage('密码不能为空!');
exit;
end; inherited; max.SQL.Clear;
max.SQL.Add('select max(czybm) from public_czybm');
max.Active:=true;
//添加 i:=strtoint(dsmax.DataSet.Fields[0].Text)+1;
bm:=inttostr(i);
while length(bm)<4 do
begin
bm:='0'+bm;
end;
max.Active:=false;
strtext:='insert into public_czybm(CZYBM,CZYMC,PASSWORD';
strvalue:='values('''+bm+''','''+dbedit2.Text+''','''+dbedit3.Text+''''; if dbcheckbox1.Checked=true then
begin
strtext:=strtext+',cbgl';
strvalue:=strvalue+',1';
end;
if dbcheckbox2.Checked=true then
begin
strtext:=strtext+',HSFX';
strvalue:=strvalue+',1';
end;
if dbcheckbox3.Checked=true then
begin
strtext:=strtext+',TJCX';
strvalue:=strvalue+',1';
end;
if dbcheckbox4.Checked=true then
begin
strtext:=strtext+',DSXG';
strvalue:=strvalue+',1';
end;
strtext:=strtext+') '+strvalue+')';
max.SQL.Clear;
max.SQL.Add(strtext);
max.ExecSQL;
max.Close;
showmessage('保存成功,请返回!');
query.Active:=false;
query.Active:=true;
end;
这是保存按钮的全部代码,我把你的代码也复制进来了,就是报错哦。
if False=CheckStr(dbedit2.text) then
showmessage('输入错误');
exit;
可是它执行数据库存的插入操作。
if False=CheckStr(dbedit2.text) then
begin
showmessage('输入错误');
exit;
end;
if False=CheckStr(dbedit2.text) then
showmessage('输入错误');
exit;
这样写,执行到exit不直接退出了啊,无论if成立不成立都exit