PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Interdire le copier/coller dans un champ RTF
Interdire le copier/coller dans un champ RTF
Débuté par Pierre-Louis, 28 fév. 2014 11:57 - 7 réponses
Membre enregistré
218 messages
Popularité : +14 (14 votes)
Posté le 28 février 2014 - 11:57
Bonjour,

Y-a-t-il un moyen (simple ?) d'interdire le copier coller dans un champ RTF (celui-ci restant accessible en saisie bien entendu, sinon ce serait trop simple).

Merci.
Membre enregistré
37 messages
Popularité : +1 (1 vote)
Posté le 28 février 2014 - 12:23
Membre enregistré
218 messages
Popularité : +14 (14 votes)
Posté le 28 février 2014 - 12:37
Merci d'avoir répondu si vite Laurent.
je vais expérimenter cela tout de suite. :merci:
Membre enregistré
218 messages
Popularité : +14 (14 votes)
Posté le 28 février 2014 - 13:08
Pierre-Louis a écrit :
Bonjour,

Y-a-t-il un moyen (simple ?) d'interdire le copier coller dans un champ RTF (celui-ci restant accessible en saisie bien entendu, sinon ce serait trop simple).

Merci.


Je viens d'essayer.
Cela fonctionne parfaitement pour un champ de saisie simple.
Par contre, :(:(, cela ne fonctionne pas pour un champ RTF qui ne semble pas intercepter l’événement Windows.

Donc, retour à la cas départ. :(

Une idée de pourquoi cela ne fonctionne pas avec un champ de saisie RTF ?

Merci.
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 28 février 2014 - 13:27
hello,
voici comment faire :

1 - Désactiver le menu contextuel pour éviter le copier coller par ce menu :
dans le champ RTF Description/IHM/Menu Ctx. à désactiver (décocher Afficher le menu des Faa)

2 - Créer un événement Touche Enfoncée (WM_KEYDOWN) sur le champ RTF et mettre ce code :
SI ToucheEnfoncée(teControl) ALORS RENVOYER Faux

C'est tout simple si la touche contrôle est enfoncée on ne fait rien derrière.
En espérant que tu n'est pas besoin de la touche contrôle dans ton champ.

Ami calmant, J.P
Membre enregistré
218 messages
Popularité : +14 (14 votes)
Posté le 28 février 2014 - 13:36
Merci Jurassic Pork. :)

Je vais essayer ta méthode.
Elle fonctionne aussi si l'on fait clic droit coller ? (les utilisateurs que je connais ne savent pas l'utilité du raccourci CTRL V) :o
Membre enregistré
37 messages
Popularité : +1 (1 vote)
Posté le 28 février 2014 - 16:28
C'est étrange, l'évènement 770 correspond bien au clic droit -> Coller dans un champ RTF.

Donc, il te suffit de désactiver les options du menu contextuelle. (Dans le champ -> IHM -> Menu Ctx )
A l'initialisation du champ je ferais :
Evénement(Touche_Enfoncé, "SAI_ChampRTF", 256) //touche enfoncé

Avec la procédure
Procedure Touche_Enfoncé(MessageWindows, wParam, lParam)

SI wParam=67 OU wParam=86 OU wParam=88 ALORS //Crtl+c Crtl+v Crtl+x
Info("Copier/Coller interdit.")
// Inhibe le traitement standard Windows donc pas de coller...
_EVE.Retour = 0
SINON
//pour connaître le n° de la touche
Trace(wParam)
FIN
Membre enregistré
218 messages
Popularité : +14 (14 votes)
Posté le 28 février 2014 - 18:58
Merci Laurent.

J'essaye tout ça.
Bon week end