我在一个form上放了一个Tedit控件,这个控件有一个OnKeyDown事件,现在我想在页面显示的时候就运行这个事件,应该怎么写?
这个事件好像有一个TshiftState参数,如果我没有相应的状态,应该给它传一个什么参数?

解决方案 »

  1.   

    在form的show 中写上
    这个事件就可以了!
      

  2.   

    也可以把该控件索引设置为第一个,然后send key一个end就可以了 :)
      

  3.   

    那如果这个控件里面的onkeydown事件中处理的是一个回车事件,那我具体怎么写?
      

  4.   


    Form1.KeyPreview := True;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (Key =VK_RETURN)  then
      begin
    //code
      end;
    end;//TshiftState参数是监视ctrl和alt和shift的
    //如:
    if (ssCtrl in Shift ) then 
      begin
    //code
      end;
      

  5.   

    那我比方想在form显示的时候运行这段代码,应该怎么调用?代码应该怎么写?
      

  6.   

    在Form的OnShow事件中调用Tedit控件的OnKeyDown事件就可以了!
    举例:
    procedure TForm1.FormShow(Sender: TObject);
    begin
      Edit1KeyDown(......);
    end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      //---------
    end;
      

  7.   

    我要知道的就是在参数里面怎么写!
    就是edit1keydown(),这个括号里面的参数写些什么?
      

  8.   

    var
      key: Word;
    begin
      key := ...; // VK_RETURN;
      
      Edit1KeyDown(Sender, key, []);    // 再如 处理“按下 Ctrl + F1 
      key := VK_F1;
      Edit1KeyDown(Sender, key, [ssCtrl]);  
    end;注:
      TShiftState = set of (ssShift, ssAlt, ssCtrl,
        ssLeft, ssRight, ssMiddle, ssDouble);