[WinDev] Copier du texte dans le presse-papiers

Vincent Lecomte

Dans le but de faciliter l’exécution de requêtes SQL sur l’AS/400 (IBM iSeries 520 V5R3), j’ai eu l’idée de développer une petite application en WinDev qui permet de lancer plusieurs requêtes successivement les unes à la suite des autres, ou bien de sélectionner des enregistrements dans une table, avec des options spécifiques. Mais là n’est pas vraiment le sujet, car vous dévoiler son fonctionnement serait équivalent à donner des informations classées secrètes.

Pour l’article d’aujourd’hui, j’ai décidé de vous parler de la fonction très utile : VersPressePapier(Texte). Elle permet aussi d’envoyer une image et fonctionne aussi bien sous Linux, Windows et Android (voir la documentation pour la compatibilité avec les différents systèmes d’exploitation et les différentes plate-formes).

VersPressePapier(SAI_Champ)

Attention : Lorsque le champ est Unicode et que vous souhaitez coller les valeurs enregistrées dans le champ, des caractères peuvent être perdus. L’utilisation de la propriété “..Valeur” permet de résoudre le problème, mais ne résout pas l’encodage des caractères tels que “é”,”è”,”à”, etc. Vous obtiendrez donc des erreurs d’encodage lors du collage.

Pour coller le texte, il suffit d’utiliser la fonction suivante, qui vérifie que le contenu du presse-papiers est bien du texte et si c’est le cas, va rechercher les informations dans celui-ci pour remplacer le contenu actuel du champ :

SI PressePapierFormat(ppfTexte) = Vrai ALORS
	// Contenu du presse-papiers
	SAI_Requetes = PressePapier() 
FIN

Vous pouvez donc maintenant créer des fonctionnalités amusantes, pour permettre par exemple de copier tout le contenu d’un champ sans que l’utilisateur ait à le sélectionner.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Copy link