我在EDIT的ONKEYPRESS事件下写道:
  IF KEY=#13 THEN
  SHOWMESSAGE('HELLO WORD!');
运行时在EDIT中输入数据后按回车怎么不显示“HELLO WORD!”对话框。单步运行时却进入BDGRIDEH控件的死循环。望大家能帮我想想办法。十分感谢!!

解决方案 »

  1.   

    if key=#13 then
         begin
           key := #0;
           showmessage('HELLO WORD!');
         end;
      

  2.   

    Edit的KeyDown事件中:
    if key=#13 then
         begin
           key:=#0;
           showmessage('HELLO WORD!');
         end;
      

  3.   

    if key=#13 then
         begin
           key:=#0;
           showmessage('HELLO WORD!');
         end;
      

  4.   

    我用F8试过了到了ONKEYPRESS的BEGIN时,不执行SHOWMESSAGE(),IF条件END后就始终在DBGRIDEH控件的某个事件下运行。
      

  5.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
            if key=#13 then
                    showmessage('OK');
    end;
    我试了没问题,
    可能是BDGRIDEH控件的问题?
      

  6.   

    dbgrideh自己有个winproc函数来接受消息的,跟踪是没有办法跟踪进去的。
    改用onkeydown事件
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word);
    begin
            if key=KV_Return then
                    showmessage('OK');
    end;