Fórum Impedir Ctrl C #318567
07/04/2006
0
No OnKeyDown do form coloquei
If (ssCtrl in Shift) and (Chr(Key) in [´C´, ´c´]) then
1) Key := 0
2) KeyBoard.AsText := ´´
3) SetKeyBoard(NovoKeyBoard) dando valor ao novokeyboard
e nenhum deles funcionou, alguém sabe como impedir que o usuário copie algo do form?
Edilcimar
Curtir tópico
+ 0Posts
07/04/2006
Paullsoftware
if (Shift = [ssCtrl]) and (Key = Ord(´C´)) then
Gostei + 0
07/04/2006
Edilcimar
Gostei + 0
07/04/2006
Paullsoftware
Uses ClipBord
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Shift = [ssCtrl]) and (Key = Ord(´C´)) then begin Clipboard.Clear; end; end;
dessa forma sempre que alguém precionar essa combinação dentro do seu texto, vai limpar a area de transferencia :wink:
Gostei + 0
07/04/2006
Edilcimar
Gostei + 0
07/04/2006
Paullsoftware
vamos fazer um teste, inicie uma nova aplicação coloque nela um Edit, mude a propriedade do KeyPreview do form para TRUE e coloque esse codigo:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Shift = [ssCtrl]) and (Key = Ord(´C´)) Or (Shift = [ssCtrl]) and (Key = Ord(´V´)) then begin // ClipBoard.AsText := ´´; Clipboard.Clear; end; end;
seleione o texto do Edit e tente copiar pra ver... aqui tá funcionando normal :?
Gostei + 0
07/04/2006
Edilcimar
f (ssCtrl in Shift) and (Chr(Key) in [´C´, ´c´]) then
showmessagew(´funciona´)
a mensagem aparece, porém em nenhum dos casos eu consigo evitar que o texto seja copiado para o clipboard ou apagar/trocar o conteúdo do mesmo, teste usando o Notepad e vai ver que consegue copiar o texto para o mesmo
Gostei + 0
07/04/2006
Paullsoftware
vc fez o teste que pedi pra fazer copiando e colando meu código em uma nova aplicação??
aqui uso Delphi 7 e funciona perfeitamente...
Gostei + 0
07/04/2006
Edilcimar
Gostei + 0
07/04/2006
Marco Salles
penso que ao inves de evitar que copiem , posso pensar em permitem que colem o vazio
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin Clipboard.AsText:=´´; end;
Gostei + 0
07/04/2006
Edilcimar
procedure TForm3.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var
Copia : TClipBoard;
begin
Copia := ClipBoard;
Copia.AsText := ´´;
If (ssCtrl in Shift) and (Chr(Key) in [´C´, ´c´]) then
// If (Shift = [ssCtrl]) and (Chr(Key) in [´C´, ´c´]) then
Begin
// showmessage(´funciona´); // esta é a única linha que funciona, nenhuma das outras surtem efeito
// key := 0;
// SetClipBoard(Copia);
// ClipBoard.AsText := ´´;
//ClipBoard.Clear;
End;
end;
Gostei + 0
07/04/2006
Marco Salles
[b:7ba6184178]voce esta colocando KeyPreviewn do form para true[/b:7ba6184178] ????
Gostei + 0
07/04/2006
Edilcimar
Gostei + 0
07/04/2006
Edilcimar
Gostei + 0
07/04/2006
Marco Salles
Gostei + 0
07/04/2006
Edilcimar
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)