Problème avec un edit

Résolu
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 - 9 juin 2005 à 23:48
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 - 14 juin 2005 à 14:13
Est-ce qu'il y a un moyen pour 2 edits qui se situe sur une form
d'authentification de bloquer l'emploi du couper, copier et coller que
ce soit avec les raccourcis claviers (CTRL+X ou CTRL+C ou CTRL+V) ou
avec le menu contextuel quand on fait clic droit sur l'edit ?

Merci de votre aide

8 réponses

informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 1
14 juin 2005 à 00:53
Bon il y a du nouveau car j'ai trouvé la solution alors merci à tous
les 2 et à la source de delphiprog dont je me suis inspiré pour trouver
la solution (celle mentionné dans la réponse de japee).



Donc pour bloquer les événements clavier (CTRL + X, CTRL + C et CTRL +
V) dans un edit voilà comment j'ai procédé pour chaque edit impliqué :



===================================================

procedure TfrmAuthentification.txtMotDePasseKeyPress(Sender: TObject;

var Key: Char);

var

Shift: TShiftState;

KeyState: TKeyboardState;



begin

GetKeyboardState(KeyState);

Shift:=KeyboardStateToShiftState(KeyState);

If (ssCtrl in Shift) and (key=#24) then // CTRL + X

key:=#0;



If (ssCtrl in Shift) and (key=#3) then // CTRL + C

key:=#0;



If (ssCtrl in Shift) and (key=#22) then // CTRL + V

key:=#0;

end;

==================================================


Ensuite, pour la souris j'ai finalement adopté la solution de japee
pour une raison bien précise. Le click droit peut être obtenu de
différentes manières (click droit, MAJ + F10, touche "menu contextuel"
du clavier (à droite de "Alt Gr") mais aussi par l'évènement
"OnCOntextPopup") et il faudrait donc géré chaque cas alors quand
mettant un popup vide tous les cas sont automatiquement gérés.



Voilà, si quelqu'un a une idée plus commode pour le click droit (enfin
pour bloquer le menu contextuel qui apparaît lors d'un click droit sur
un edit) qu'il ne se prive pas.



Encore une fois merci à tous.
3
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 1
14 juin 2005 à 11:30
Merci bien à tous les 2 voilà mon problème enfin résolu pour de bon. Je
vais vous faire rire parce que j'avais essayer cette astuce du
OnContextPopup mais j'avais affecté False à Handled donc ça marchais
pas.



Je vous embête une dernière fois dans ce post mais quelqu'un pourrait-il m'expliquer à quoi correspond le handled SVP.



Un handle n'est-il pas un entier qui sert à identifier uniquement une fenêtre ?
3
cs_sim51 Messages postés 240 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 31 décembre 2006 2
10 juin 2005 à 12:18
Salut,

Tiens j'ai troiuvé une source qui permet de désactivé le ctrl alt suppr
sur windows, peut-être que cela te permettra de trouver la solution
pour empêcher le ctrl x/c/v.

Sinon je ne sais pas s'il y a une option avec le clipboard pour
empêcher ça, regarde dans l'aide de delphi à propos de l'unité clipbrd.

Ou alors il me vient une idée, tu peux empêcher d'entrer plus d'un
caractère à la fois dans un Tedit, mais cela suppose de garder en
mémoire la longueur du tedit

edit1.onchange ( ou onkeypress )

begin

if (length(edit1.text)-longueur_avant)<>1 then begin

edit1.text:=copy(edit1;text,1,length(edit1)-(length(edit1.text)-longueur_avant));

showmessage('Vous ne pouvez entrez qu'un seul caractère à la fois')

end;



N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
0
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 1
12 juin 2005 à 20:00
Désolé pour le retard mais je sais plus ou donner de la tête !



Merci pour ces renseignements, je vais tester ces solutions et je vous dirais laquelle j'ai retenu.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
14 juin 2005 à 09:11
Bonjour,



Puisque tu disposes de l'évènement OnContextPopup, tu peux dans ces conditions faire :



procedure TfrmAuthentification.txtMotDePasseContextPopup(Sender: TObject; MousePos: TPoint;

var Handled: Boolean);

begin

Handled := True; // désactive le click droit

end;




Bonne prog'



japee
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
14 juin 2005 à 09:20
Pour gérer le menu contextuel, on peut utiliser OnContextPopup du contrôle :

procedure TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
Handled := True;
end;

Cela fonctionne aussi bien avec un clic droit, la combinaison Shift+F10 et la touche de menu contextuel.

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
14 juin 2005 à 12:45
Handle n'a rien à voir avec le paramètre Handled.
La valeur Handled est retournée au système pour lui indiquer que le message a été traité ou pas. Je ne vais pas m'avancer dans l'explication du principe de traitement des messages si tu ne maîtrises pas ce sujet. Ce paramètre aurait tout aussi bien pu s'appeler managed.

Quant au Handle, il s'agit d'un identificateur sur une structure interne du système.


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 1
14 juin 2005 à 14:13
Merci beaucoup pour ces précisions, décidement on en apprend tous les jours.
0
Rejoignez-nous