怎样屏蔽edit中的快捷键??/Ctrl+A 、V、C等???

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #1 then//屏蔽Ctrl+A
      //Ctrl+A---Ctrl+Z分别是#1到#26
        Key = #0;
    end;
      

  2.   

    if Key = #1 then Key := #0;  // Ctrl + A;
    if Key = #3 then Key := #0;  // Ctrl + C;
    if Key = #22 then Key := #0; // Ctrl + V;
      

  3.   

    楼上二位的方法好像不行吧uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Label1: TLabel;
        Label2: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
        HotKeyId: Integer;
        procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;  //热键消息响应
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.HotKeyDown(var Msg: Tmessage);
    begin
      if (Msg.LparamLo = MOD_CONTROL) And ((Msg.LParamHi=$41) or (Msg.LParamHi=$43)   or (Msg.LParamHi=$56)) then
      begin
        //showmessage('A');在这里什么也不做
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      HotKeyId := GlobalAddAtom('HotKey') - $C000;
      RegisterHotKey(handle, hotkeyid, MOD_CONTROL,$41);
      RegisterHotKey(handle, hotkeyid, MOD_CONTROL,$43);
      RegisterHotKey(handle, hotkeyid, MOD_CONTROL,$56);
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    UnRegisterHotKey(handle, HotKeyId);
    end;