请教 一个问题 关于edit响应回车的
我的代码如下 可是回车后没有反应,请高手看看是不是我的代码有问题
procedure TLogin.edt1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
    begin
      qry1.Close;
      qry1.SQL.Clear;
      qry1.SQL.Add('select username from t_user where userid='''+edt1.Text+'''');
      qry1.Open;
      edt3.Text:=qry1.fieldbyname('username').AsString;
    end;
end;

解决方案 »

  1.   

    qry1.SQL.Add('select username from t_user where userid='''+edt1.Text+''''); 这条语句能查出来信息吗,是不是有字段中有空格之类的,改成这样试试qry1.SQL.Add('select username from t_user where trim(userid)='''+trim(edt1.Text)+''''); 
      

  2.   

    检查是不是edt1的Kpress事件没有指定
      

  3.   

    你的窗体keypreview设成TRUE了没?
      

  4.   

    老看错 , 加个showmessage进去,看看有没有执行过
      

  5.   

    procedure TLogin.edt1KeyPress(Sender: TObject; var Key: Char); 
    begin 
      if Key=#13 then 
        begin 
          qry1.Close; 
          qry1.SQL.Clear; 
          qry1.SQL.Add('select username from t_user where userid='''+trim(edt1.Text)+''''); //加一个trim试一下~~或者数据库中没有此id
          qry1.Open;
          if qry1.Bof and qry1.Eof then 
           showmessage('系统中无此用户!')
          else
          //加一个判断
           edt3.Text:=qry1.fieldbyname('username').AsString; 
        end; 
    end; 
      

  6.   

    谢谢各位,问题已经找到了,代码没有问题,问题出在我将窗体中的一个Button控件指定为默认回车响应了,所以edit的回车响应就没有用了。