Pergunta

Gostaria de evitar copiar, cortar e colar no meu TEdit. , Como posso fazer isso?

Eu tentei definindo o Key=NULL no evento KeyDown quando CTRL + V foi pressionado no controle, mas não funcionou.

Foi útil?

Solução

Você vai precisar para evitar que os WM_CUT, WM_COPY e mensagens WM_PASTE de ser enviado para o seu TEdit. Esta resposta descreve como fazer para isso usando apenas a API do Windows. Para o VCL, pode ser suficiente para TEdit subclasse e altere sua propriedade DefWndProc ou substituir seu método WndProc.

Outras dicas

Atribuir isso TEdit.OnKeyPress:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if (Key=#22) or (Key=#3) then Key:=#0;   // 22 = [Ctrl+V] / 3 = [Ctrl+C]
end;

Eu sei que isto é uma questão de idade, mas vou acrescentar o que eu encontrei. O cartaz original quase tinha a solução. Ele funciona muito bem se você ignorar recortar / copiar / colar em caso pressione a tecla em vez da tecla para baixo o evento. ou seja, (c ++ builder)

void __fastcall Form::OnKeyPress(TObject *Sender, System::WideChar &Key)
{
   if( Key==0x03/*ctrl-c*/ || Key==0x16/*ctrl-v*/ || Key==0x018/*ctrl-x*/ )
      Key = 0;  //ignore key press
}

Você pode usar alguns programas globais que atalhos de apoio e de bloco C-V C-C C-X quando a janela TEdit está ativo

Uses Clipbrd;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
  Clipboard.AsText := '';
end;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top