Delphi 学习日记:禁止TEdit或TMemo的“Ctrl+V”粘贴

来源:岁月联盟 编辑:exp 时间:2012-03-03

今天去About.com逛了逛,学到一点东西,记下来

No "Paste" for you!
To intercept any key combination for a TEdit (or TMemo or more generally TCustomEdit) you need to handle the OnKeyDown event.
Put a TEdit named "Edit1" on a form (named "Form1"). Handle Edit1's OnKeyDown event as:

 uses Clipbrd, ...
 
 //disable CTRL + V ("Paste") :: handles Edit1.OnKeyDown
 procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState) ;
 begin
   if ((ssCtrl in Shift) AND (Key = ord('V'))) then
   begin
     if Clipboard.HasFormat(CF_TEXT) then ClipBoard.Clear;
 
     Edit1.SelText := '"Paste" DISABLED!';
 
     Key := 0;
   end;
 end;
 When the user presses the CTRL+V key combination while Edit1 has the input focus ... the code above will clear the clipboard and "paste" the '"Paste" DISABLED!' text into the edit control.

 

摘自 金山野狼

图片内容