begin
 with  ADOQuery1 do
 begin
 sql.Clear;
 ADOQuery1.SQL.Add('select * from 登陆 where 用户名="'+suiedit1.Text+ '"');
 Open;
   if eof then
  Label1.Caption:= '用户不存在!'
  else  begin
    if ADOQuery1.FieldByName('密码').Value=suiedit2.Text then
    begin
    label1.Caption:='';
     ADOQuery1.Close;
    form2.Show;  //显示新窗口
     form1.Hide;   //关闭登录窗口
    end
    else
    label1.Caption:='密码错误!';
    suiedit2.SetFocus;
    end;
      end;
      end;请大侠指教问题!!不知道为什么--我点击登陆窗口,显示第二个窗口的时候,出现这样的错误!!!

解决方案 »

  1.   

    suiedit2 在哪个窗体上,是不是两个窗体上都有 
    如果在form1上的话,你已经form1.Hide了,那么suiedit2.SetFocus; 就会出错
      

  2.   

    begin 
    with  ADOQuery1 do 
    begin 
    sql.Clear; 
    ADOQuery1.SQL.Add('select * from 登陆 where 用户名="'+suiedit1.Text+ '"'); 
    Open; 
      if eof then 
      Label1.Caption:= '用户不存在!' 
      else   begin 
        if ADOQuery1.FieldByName('密码').Value=suiedit2.Text then 
        begin 
        label1.Caption:=''; 
        ADOQuery1.Close; 
        form2.Show;  //显示新窗口 
        form1.Hide;  //关闭登录窗口 
        end 
        else 
        label1.Caption:='密码错误!'; 
        form1.show;//加上这一句 
        suiedit2.SetFocus; 
        end; 
          end; 
          end; 
      

  3.   

    suiedit2.SetFocus
    的前提是suiedit2要可见