[WinDev] Copier du texte dans le presse-papiers

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 e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *