Creo que estamos confundiendo las cosas, cuando copiamos o pegamos, ya sea usando el menú o utilizando alguna combinación de teclas, lo que llega al edit son los mensajes WM_COPY y WM_PASTE. En ningún momento llegan al edit las pulsaciones de esas teclas porque se procesan por windows mucho antes.
Para controlar cuando, y como, se copia y se pega lo que tenemos que hacer es interceptar los mensajes WM_COPY y WM_PASTE. Se puede hacer de varias maneras, pero ahora mismo se me ocurre que lo podemos hacer sustituyendo el WndProc del edit. Algo así:
Código Delphi
[-]
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
AntWindowProc: TWndMethod;
procedure MiWindowProc(var Message: TMessage);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MiWindowProc(var Message: TMessage);
begin
case Message.Msg of
WM_COPY:
begin
end;
WM_PASTE:
begin
end;
else AntWindowProc(Message);
end
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
AntWindowProc:= Edit1.WindowProc;
Edit1.WindowProc:= MiWindowProc;
end;