下面是我写的代码,还没写完,但大致是这样的。但运行是怎么会出现list out of bounds(2)的错误
a:=True; for i:=0 to Form2.Table1.RecordCount-1 do
begin
if Edit1.Text=Form2.Table1.Fields[i].Value
then
begin
a:=False;
ShowMessage('你输入的用户名已注册,请重新输入');
Edit1.SetFocus;
end
else a:=True;
end;
if a=True
then
begin
if (Edit3.Text=Edit2.Text)
then
begin
Form2.Table1.InsertRecord([Edit1.Text,Edit2.Text]);
ShowMessage('恭喜你注册成功,你的帐号为'+edit1.Text+'.');
end
else
begin
ShowMessage('输入的密码前后不一致,请重新输入!');
Edit2.Clear;
Edit3.Clear;
Edit2.SetFocus;
end; end;
a:=True; for i:=0 to Form2.Table1.RecordCount-1 do
begin
if Edit1.Text=Form2.Table1.Fields[i].Value
then
begin
a:=False;
ShowMessage('你输入的用户名已注册,请重新输入');
Edit1.SetFocus;
end
else a:=True;
end;
if a=True
then
begin
if (Edit3.Text=Edit2.Text)
then
begin
Form2.Table1.InsertRecord([Edit1.Text,Edit2.Text]);
ShowMessage('恭喜你注册成功,你的帐号为'+edit1.Text+'.');
end
else
begin
ShowMessage('输入的密码前后不一致,请重新输入!');
Edit2.Clear;
Edit3.Clear;
Edit2.SetFocus;
end; end;
begin
if Edit1.Text=Form2.Table1.Fields[i].Value // i 指的是行数,你这里FIELDS[I],I是列。肯定会出错的。你要搞清楚你的用户名是哪一列。如果是第一列就应该是: if Edit1.text = Form2.Table.fields[0].AsString