| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 568 人关注过本帖
标题:关于判断的问题(还有焦点)
只看楼主 加入收藏
liuqiang_sy
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-3-13
收藏
 问题点数:0 回复次数:3 
关于判断的问题(还有焦点)

procedure TForm1.Edit1Exit(Sender: TObject);
var
i:integer;
begin
for i:=1 to length(edit1.Text) do
begin
if(not(edit1.Text[i] in ['a'..'z','A'..'Z','0'..'9'])) then
begin
label4.Caption:='特殊字符';
exit;
end
else
label4.Caption:='';
end;

if edit1.Text='' then
begin
label4.Caption:='用户名不能为空';
label4.Font.Color:=clred;
end
else
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from DL where ID='''+EDIT1.Text+'''';
ADOQUERY1.Open;
if adoquery1.RecordCount<>0 then
begin
label4.Caption:='该用户名以存在';
label4.Font.Color:=clred;
end
else
begin
label4.Caption:='';
label4.Font.Color:=clbtnface;
end;
end;

end;


procedure TForm1.Edit2Exit(Sender: TObject);
begin
if edit2.Text='' then
begin
label5.Caption:='请输入密码';
label5.Font.Color:=clred;
end
else
begin
label5.Caption:='';
label5.Font.Color:=clbtnface;
end;
end;

procedure TForm1.Edit3Exit(Sender: TObject);
begin
if edit3.Text='' then
begin
label6.Caption:='请输入密码';
label6.Font.Color:=clred;
end
else
begin
if edit3.Text<>edit2.Text then
begin
label6.Caption:='确认密码不一致';
label6.Font.Color:=clred;
end
else
begin
label6.Caption:='';
label6.Font.Color:=clbtnface;
end;
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;

如果第一次在EDIT1中输入一个合法字符如1234不显示提示
如果第一次在EDIT1中输入的是一个不合法字符如@@@!!刚出显示
但问题是第一次在EDIT1中输入的是合法我跳到EDIT2把焦点给到EDIT2然后我在跳回在给EDIT1这时输入一个不合法字符@@@!!就没有提示.

搜索更多相关主题的帖子: 焦点 判断 
2007-04-19 21:33
nongen
Rank: 5Rank: 5
来 自:网络
等 级:贵宾
威 望:17
帖 子:322
专家分:0
注 册:2006-11-25
收藏
得分:0 
for i:=1 to length(edit1.Text) do
begin
if(not(edit1.Text[i] in ['a'..'z','A'..'Z','0'..'9'])) then
begin
label4.Caption:='特殊字符';
exit;//这里用break 则是退出这个循环,而用exit的话,则退出procedure TForm1.Edit1Exit(Sender: TObject);

end
else
label4.Caption:='';
end;

昨天不是我的,明天不是你的,今天却是我们的。
http://www.
2007-04-19 22:46
liuqiang_sy
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-3-13
收藏
得分:0 

问题和break的关系不大.
现在的问题是第一次进入了FOR循环判断以满足条件的给出提示(特殊字符给出提示),
但是如果第一次输入的是合法符字在把焦点给到EDIT2中.然后在回到EDIT1中.这时候输入一个不合法的符字它就不进入FOR循环做判断,.


2007-04-20 08:49
nongen
Rank: 5Rank: 5
来 自:网络
等 级:贵宾
威 望:17
帖 子:322
专家分:0
注 册:2006-11-25
收藏
得分:0 

winxpsp2\delphi7测试你的代码
for i:=1 to length(edit1.Text) do
begin
if(not(edit1.Text[i] in ['a'..'z','A'..'Z','0'..'9'])) then
begin
label4.Caption:='特殊字符';
exit;
end
else
label4.Caption:='';
end;
通过。
包括你所说的退出edit1再edit2再edit1的焦点,还是正常的。


昨天不是我的,明天不是你的,今天却是我们的。
http://www.
2007-04-20 08:59
快速回复:关于判断的问题(还有焦点)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015883 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved