一个刚接触编程的人的问题!请各位赏脸。。。(50分)

  • 主题发起人 主题发起人 菜鸟一号
  • 开始时间 开始时间

菜鸟一号

Unregistered / Unconfirmed
GUEST, unregistred user!
在存储数据是遇到一个这样的问题,就是在一个输入EMAIL地址的Edit中,
在存盘确认时想要检测数据是否合法,也就是出入的字符串里要有且只有一个'@'符号,
且它的前后都不能为空,这代码该怎么写?
 
其实随便用户自由输入好了,无需控制最简单,也没什么不合理的。
 
function Validate: boolean;
var
iPos: integer;
begin
iPos := Pos('@', Edit1.Text);
result := (iPos > 1) and (iPos < Length(Edit1.Text)); //前后都不能为空
end;
 
楼上的够精减的了
 
to Adnil:我实在是太菜了,下面是我原来的代码,可以告诉我你那段具体放哪里吗?
procedure TfrmNewCustomer.BitBtn1Click(Sender: TObject);
begin
try
with DM_CIS.spNewCustomer do
begin
Parameters.ParamValues['@ZipCode'] := Edit7.Text;
end;

 
procedure TfrmNewCustomer.BitBtn1Click(Sender: TObject);
var
iPos: integer;
begin
try
with DM_CIS.spNewCustomer do
begin
iPos := Pos('@', Edit7.Text);
if (iPos <= 1) or (iPos = Length(Edit7.Text)) then
begin
showmessage('error');
exit;
end;
Parameters.ParamValues['@ZipCode'] := Edit7.Text;
end;
 
放在EDIT1失去焦点时最好
if not Validate then
begin
showmessage('you email is not valided!');
edit1.setfocus();
end;
 
to jie5 :我想请问Edit1失去焦点这一事件是一个什么事件,在哪里?
 
多人接受答案了。
 
后退
顶部