procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_UP: {上};
    VK_DOWN: ;
    VK_LEFT: ;
    VK_RIGHT: ;
  end;
end;

解决方案 »

  1.   

    好像不行,onkeydown对方向键没反应?
      

  2.   

    曾发现MDI主窗体有屏蔽keydown事件,须改写WndProc才能响应案件,以下代码工参考!希望有所帮助!
    protected
        FClientInstance, FPrevClientProc : TFarProc;
        procedure ClientWndProc(var Message: TMessage);procedure TMainForm.FormCreate(Sender: TObject);
    begin
        FClientInstance := MakeObjectInstance(ClientWndProc);
    end;
    procedure  TMainForm.clientwndproc(var message:Tmessage);
    var
     MyKeyDown: TKeyEvent;
     shift: Tshiftstate;
     key: Word;
    begin
      with message do
      begin
        if msg=WM_KeyDown then
        begin
          Key:= message.wparam;
          MyKeyDown:= OnKeyDown;
          if assigned(mykeydown) then MyKeyDown(Self, Key, Shift);
          Result:= 1;
        end else Result:=CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam, lParam);
      end;
    end;
      

  3.   

    我想获得光标的位置你已经知道了,现在只是想获得一个类似于光标更改的事件,其实在RichEdit中就已经提供了这样的事件,是SelectionChange事件,你将代码写入即可,根本不需要什么键盘事件,那样只会更麻烦。