如题,想就那个按键被按下去了后作出判断,然后在ADOQUERY过滤数据集事件中判断是那个按键按下了,然后再调用那个条件进行数据的查询,不知怎样的写相关的事件,算法如下:
procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet; 
  var Accept: Boolean); 
begin
if N1按下了 ten
 begin
  if 条件1  then
  begin
  end;
 end;if N2按下了 ten
 begin
  if 条件2  then
  begin
  end;
 end;
........
end;

解决方案 »

  1.   

    至少也应该在OnKeyPress、OnKeyDown这样的事件下触发吧Key=VK_UP 
    VK_RIGHT 
    VK_DOWN ...
      

  2.   

    用postmessage来捕捉或获取可以吗,可以的话怎样用这个函数相关的参数
      

  3.   

    是不是应该在KeyPress或KeyDown中判断按键呀
      

  4.   

    procedure Tlogin_form.FormKeyPress(Sender: TObject; var Key: Char);
          begin
    //判断是否按下<enter>
            if key=#13 then
                begin
                key:=#0;
    //焦点移动到下一个组件
                perform(WM_NEXTDLGCTL,0,0);
              end;
          end;
      

  5.   

    这样的判断,那在ADOQUERY过滤数据集事件中就起不到条件的作用,那再用一个中间媒介如label,或edit写上一个标示符,再在ADOQUERY过滤数据集事件中来判断这里面的标示符是那个再指身那个查询条件
      

  6.   

    你用几个checkbox判断条件 不就可以了么? 
      

  7.   

    通过在text中输入数据,数据实时筛选,这是个常规的做法
      

  8.   

    在Onkeydown事件中记录所按下的键
      

  9.   

    不知道你有多少个按键来响应你的算法,如果不多完全可以使用就简单的判断来实现,如果很多,那就需要在Onkeydown事件中处理了。
      

  10.   

    需要在Onkeydown事件中处理,判断阿斯根码。
      

  11.   

    定义一个全局变量
    var
      i:integer;
    当某个按键按下的时候给它个值:
      i:=1;然后在查询按钮下面写代码就好了
      if i=1 then  begin
       //写那个查询函数
      end
     else if i=2  then
     begin
    //写那个查询函数
      end