Recherche sur le blog

lundi 17 juin 2013

[WD17] Créer une liste déroulante de polices

Si vous souhaitez créer vous-même une liste déroulante de polices Windows, cela peut être facilement réalisable en quelques minutes. Sachez qu’il existe déjà un composant disponible sur le DVD de la “Lettre du Support Technique”, bien plus complet. Ici, il s’agit de montrer comment on peut arriver à une liste à l’ergonomie bien pensée. Nous nous inspirons bien sûr des conseils du magazine de PC Soft.

Créer une fenêtre de type “popup”

Dans l’éditeur de Windev, créez une nouvelle fenêtre. Le mieux est de choisir le type “Vierge pour popup”. Cela crée une fenêtre sans cadre, sans boutons de contrôle et sans barre de message. Nous allons y insérer un champ texte, qui servira pour créer le filtre instantané. Nous créons également un champ de type “table”, avec deux colonnes : les deux contiendront le nom de la police, mais celle de droite sera formatée. Nous en profitons aussi pour passer par l’onglet “Style” afin de supprimer les en-têtes. L’utilisateur ne pourra ni trier, ni filtrer par l’intermédiaire des FAA (“Fonctionnalités Automatiques de l’Application”).

Voici ce à quoi nous voudrions arriver pour la fenêtre :

resultat2

Bien sûr, cela implique l’écriture de code à plusieurs endroits. Premièrement, il faut que la table soit remplie lors de l’initialisation. Nous ne souhaitons pas que l’utilisateur puisse effectuer de recherche pendant ce temps, donc nous bloquerons le champ de saisie pendant le remplissage.

Initialisation de la fenêtre

Nous allons stocker dans une chaine la liste de police, obtenue avec la fonction “PoliceListe()” du WLangage. Chaque police est séparée par un retour chariot. Nous allons alors les déplacer dans un tableau de chaines grâce à la fonction “CSVVersTableau()”. Pour simplifier encore plus le code, nous allons directement passer en tant que premier paramètre de cette fonction, la 1ère que nous avons détaillé ci-dessus. Une fois que cela est fait, nous trions le tableau, puis nous le parcourons pour remplir le champ de type “table”. L’appel à la fonction “Multitâche” permet de rendre la main à Windows, l’utilisateur pourra alors déjà sélectionner une police pendant que le chargement est en cours.

Afin de dessiner et de formater la seconde colonne, nous utilisons la famille de fonctions “g”, qui sont des fonctions à caractère graphique. Par exemple, la fonction “gPolice()” permet de créer une police en lui spécifiant des paramètres comme l’alphabet utilisé. Dans notre cas, nous choisissons l’alphabet par défaut. Nous utilisons également la fonction “gCadrage()” pour positionner correctement le texte, verticalement et horizontalement. Après la boucle, nous dégrisons le champ de saisie, qui, pour rappel, était déjà grisé lors de son initialisation.

initfen

Filtrer les résultats

Nous allons permettre de filtrer le champ “table” grâce à la fonction “TableActiveFiltre”. Celle-ci reçoit en paramètre le nom de la colonne que l’on souhaite filtrer, le type de filtre à utiliser, ainsi que la valeur à rechercher. Nous allons aussi faire en sorte que dès que la police exacte est trouvée, elle soit sélectionnée. Il faudra aussi que le filtre soit supprimé si la saisie est vide. Attention : le code est bien sûr à exécuter à chaque modification de valeur du champ.

modifchamp

Renvoyer un résultat

Venons-en au principal : la valeur de retour. Notre fenêtre va devoir renvoyer une valeur, en l’occurrence, il s’agira du nom de la police. Nous allons faire cela dans le cas d’un double clic sur le tableau. Le code à exécuter est relativement simple !

tablepol

Créer un modèle de champ

Pour nous simplifier la tâche, nous allons créer un modèle de champ qui contiendra une liste déroulante. Pour ce faire, effectuez un clic droit sur “Modèles de champs” dans l’explorateur du projet puis choisissez l’option “Créer un nouveau modèle”. Une nouvelle fenêtre s’ouvre pour vous demander le type. Choisissez “vierge sans gabarit”, ainsi vous pourrez, dans un autre projet, surcharger le modèle ou le champ qu’il contient, avec le style de votre choix.

creamodelechamp

Placez une liste déroulante et donnez-lui un nom suffisamment explicite. Indiquez qu’elle ouvrira une popup et désignez la fenêtre que vous avez créée au cours des étapes précédentes. Lorsque tout est défini (libellés, noms, etc), enregistrez votre modèle. La prochaine étape consistera alors à en faire un composant que l’on peut importer dans n’importe quel projet.

Créer un nouveau composant interne

Un composant interne vous permet de regrouper plusieurs éléments et de les partager aisément, notamment via le “Gestionnaire de Sources” (GDS). Toujours depuis l’explorateur de projets, vous pouvez effectuer un clic droit sur “Composants internes” puis choisir “Créer un nouveau composant”. Un assistant s’ouvre. C’est relativement simple, il suffit de suivre attentivement les différentes étapes.

compoint_1

A l’étape qui suit, donnez un nom à votre composant et décrivez-le au mieux.

compoint_2

Ensuite, vous devez cocher les éléments à intégrer. Ici, nous avons besoin de la fenêtre popup ainsi que du modèle de champ qui contient la liste déroulante. Il faudra également indiquer quels sont les éléments publics (accessibles depuis le projet) ou privés (uniquement accessibles depuis d’autres éléments du composant).

compoint_3

Pour terminer, nous sélectionnons l’option “utiliser l’analyse du projet ou aucune analyse”. Les contextes d’exécution et l’analyse seront les mêmes que ceux du projet dans lequel on importe le composant interne.

compoint_4

Confirmez la création. Votre nouveau composant est alors généré.

Importer le composant dans un autre projet

Pour l’importer dans un projet, il vous suffira par exemple, depuis l’explorateur de projets, d’effectuer un clic droit sur “Composants internes” puis “Importer depuis un fichier”.

Affichage du résultat

Et voici le résultat global de ce que nous venons de créer !

resultat_brim

Bon développement à tous !

dimanche 16 juin 2013

[Actualités] Google annonce “Project Loon”

Ce n’est pas vraiment une nouveauté, surtout pour la Nouvelle-Zélande qui a été choisie pour effectuer les premiers tests, mais Google compte bien lancer son futur projet – Project Loon – afin de permettre d’obtenir un accès à internet dans des zones où le câblage ne permet pas d’en profiter comme il se doit. Après les surprenantes Google Glasses, nous ne sommes évidemment plus au bout de nos surprises ! Concrètement, des ballons gonflés à l’hélium graviteraient à 20 kilomètres du sol – dans la stratosphère –, embarquant l’équipement permettant d’émettre des ondes au sol ainsi qu’aux différents autres ballons à proximité. Google indique avoir développé des algorithmes afin de les maintenir dans les zones adéquates, en les faisant changer de courant. C’est ce qu’on peut lire sur la page du projet.

o-PROJECT-LOON-facebook

Il suffirait alors de placer, à l’extérieur du bâtiment, une antenne spécifiquement conçue pour communiquer avec ces mêmes ballons, afin d’obtenir une connexion ! Début juin, dans la région de Canterbury, en Nouvelle-Zélande, et plus précisément à Christchurch, 30 ballons auraient été envoyés pour un petit groupe de testeurs. Google se dit très confiant, et voudrait vraiment pouvoir offrir un accès internet fiable par l’intermédiaire de cette méthode, ce pour les smartphones, tablettes ainsi que la maison.

hothardware

Il s’agit là d’un projet très intéressant et réellement bluffant. Nous n’en connaissons bien évidemment pas le cout. Nous vous invitons cependant à parcourir le site officiel, accessible depuis les sources ci-dessous, afin d’en apprendre davantage et de vous tenir au courant (le jeu de mot est bien choisi).

Sources

Clubic.
Google Project Loon.
Reuters.

mardi 4 juin 2013

[Astuces] Propriétés du serveur d’impression (W7)

Dans Windows XP, il était un peu plus simple d’accéder aux propriétés du serveur d’impression puisqu’il suffisait d’effectuer un clic droit dans l’espace de travail de la fenêtre “Imprimantes et télécopieurs” pour avoir accès à un menu déroulant proposant l’option en question. Sur Windows 7, il faut sélectionner une imprimante depuis “Périphériques et imprimantes” pour faire apparaitre le fameux bouton qui mène à la même boite de dialogue. Cependant, s’il n’y a aucune imprimante, cette option n’apparait nulle part.

En fait, la boite de dialogue qui s’affiche correspond à un utilitaire appelé “printui”. Lorsqu’on tente de l’exécuter directement depuis l’option “Exécuter” du menu démarrer, des informations s’affichent, détaillant les commutateurs utilisables en ligne de commande.

commutateur

Celui qui nous intéresse plus particulièrement est “/s” : comme le texte l’indique, il permet d’afficher les propriétés du serveur d’impression, c’est-à-dire, la fameuse fenêtre que nous cherchons à ouvrir depuis le début de cet article. En tant qu’administrateur, vous pouvez donc exécuter la commande “printui.exe /s”. Pour aller plus loin, si vous souhaitez directement atteindre l’onglet “Pilotes”, ajouter le commutateur “/tX” pourra vous aider. A la place de X, vous devez spécifier le numéro d’onglet -1 – la numérotation démarrant à zéro –, donc dans ce cas, le chiffre à indiquer est 2.

Voilà qui est fait. Il ne vous reste plus qu’à créer un raccourci vers cette commande et le tour est joué !