如题

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key in ['a','A'] then
        Key := 'B';
    end;
      

  2.   

    可以,,
    在VC里可以使用 PreTranslateMessage 函数。
    在delphi里应该更简单,使用 Form的KeyDown 或 KeyUp就可以做到。。
      

  3.   

    我的意思是要截获这消息,不只是在Edit里
      

  4.   

    道理一样,截获windows键盘消息,判断按下的是不是'A',是的话,将'A'改成'B'
      

  5.   

    那就是使用 API
    SetWindowLong(hWnd, DWL_DLGPROC, @NewProc)
      

  6.   

    To:yc_8301 
    我试过在
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=107 then
         key:=74;
    end;还是无法改变啊