DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Types disponibles / Champ Combo
  • Présentation
  • Les différentes méthodes d'alignement du texte
  • Alignement des éléments grâce au caractère TAB
  • Cadrage des éléments à droite ou à gauche
  • Récupération des éléments d'un champ Liste
  • Alignement avec des espaces (méthode utilisable uniquement avec des polices non proportionnelles)
  • Alignement des numériques
  • Alignement des numériques
  • Alignement des nombres sur le séparateur décimal
  • Récupération du contenu du champ Liste
  • Alignement dans les champs Combo avec saisie
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Les éléments d'un champ Combo (ou d'un champ Liste) peuvent être alignés selon différentes méthodes :
  • Pour le texte :
    • Alignement des éléments par TAB. Il est possible de cadrer les éléments à gauche et à droite.
    • Alignement avec des espaces (méthode fonctionnant uniquement avec des polices non proportionnelles).
  • Pour les numériques : Alignement des nombres sur le séparateur décimal.
  • Pour les champs Combo avec saisie.
Les différentes méthodes d'alignement du texte

Alignement des éléments grâce au caractère TAB

Pour aligner chaque élément d'un champ Liste ou Combo, la solution la plus simple est d' utiliser le caractère de contrôle TAB.
// Le premier est complété pour réserver la taille
LISTE_LISTE2.Ajoute(Complète("MALTESE", 8) + TAB + "Corto")
LISTE_LISTE2.Ajoute("PICSOU" + TAB + "Jean")
LISTE_LISTE2.Ajoute("ANA" + TAB + "Yoko")
Avec le caractère TAB, la largeur de chaque élément est calculée en prenant comme référence le caractère "E". La largeur de référence est multipliée par le nombre de caractères de chacun des éléments.
Important : Le premier appel à la fonction <Liste>.Ajoute fixe les positions des tabulations pour la totalité du champ Liste et pour les autres champs Liste de la fenêtre. Ainsi, dès le premier <Liste>.Ajoute, il faut penser à réserver une "place suffisante" pour les autres éléments du champ. Par exemple, si vous savez que le plus grand élément affiché dans le champ contiendra 20 lettres, vous pouvez fixer la taille grâce à la fonction <Type Chaîne Ansi>.Complète.

Cadrage des éléments à droite ou à gauche

Par défaut, le texte des éléments est cadré à gauche. En effet, l'utilisation du caractère TAB permet d'aligner le texte des éléments sur la gauche.
Pour cadrer un élément à droite, il suffit d'utiliser le caractère EOT (avant le texte à afficher dans le champ Liste).
Quelle que soit la largeur du champ, les éléments utilisant le caractère EOT seront cadrés à droite.
// Le premier est complété pour réserver la taille
LISTE_LISTE3.Ajoute(EOT + Complète("MALTESE", 8) + ...
TAB + EOT + "Corto")
LISTE_LISTE3.Ajoute(EOT + "PICSOU" + TAB + EOT + "Jean")
LISTE_LISTE3.Ajoute(EOT + "ANA" + TAB + EOT + "Yoko")

Récupération des éléments d'un champ Liste

Lors de la récupération d'un élément d'un champ Liste, la ligne entière est retournée, y compris les éventuels caractères EOT et TAB.
Par exemple pour le champ Liste précédent, la fonction ci-dessous récupère le premier élément :
Ligne = LISTE_Liste4[1]
La variable Ligne contient le texte : <EOT>MALTESE <TAB><EOT>Corto
Ainsi, il ne faut pas oublier d'extraire, si nécessaire, les caractères EOT et TAB.

Alignement avec des espaces (méthode utilisable uniquement avec des polices non proportionnelles)

Dans les champs Liste comportant plusieurs éléments sur une même ligne, l'utilisation de polices de largeur variable rend souvent difficile l'alignement des éléments.
Par exemple, si le champ Liste utilise la police "Arial" et si elle comporte deux éléments, le code suivant affichera le champ Liste sous la forme ci-dessous (éléments non alignés) :
LISTE_LISTE1.Ajoute(Complète("MALTESE", 8) + "Corto")
LISTE_LISTE1.Ajoute(Complète("PICSOU", 8) + "Jean")
LISTE_LISTE1.Ajoute(Complète("ANA", 8) + "Yoko")
Bien que le texte soit complété à 8 caractères pour le premier élément, le second élément ne sera pas aligné.
En effet pour les polices proportionnelles, chaque caractère a une largeur qui lui est propre. Pour ces polices, l'alignement avec des espaces ne peut pas être utilisé.
Il peut toutefois être utilisé avec des polices non proportionnelles telles que "Courier".
Alignement des numériques

Alignement des numériques

L'alignement des numériques est réalisé de la même façon que l'alignement du texte (voir paragraphe précédent). Il est cependant possible d'effectuer également un alignement des nombres sur le séparateur décimal.

Alignement des nombres sur le séparateur décimal

Pour aligner les nombres sur le séparateur décimal, il faut combiner l'utilisation des caractères TAB et EOT :
  • la partie entière est cadrée à droite.
  • la partie décimale (y compris le séparateur) est cadrée à gauche.
Comme nous l'avons déjà précisé, le premier appel à <Liste>.Ajoute détermine la largeur des éléments. Ainsi, il ne faut pas oublier de réserver la largeur des éléments lors de l'ajout de la première ligne dans le champ.
LISTE_LISTE4.Ajoute(Complète("FRANCE", 7) + TAB + EOT + ...
"  30" + TAB + ",00")
LISTE_LISTE4.Ajoute("CANADA" + TAB + EOT + "10" + TAB + ",00")
LISTE_LISTE4.Ajoute("SUISSE" + TAB + EOT + "246")

Récupération du contenu du champ Liste

Lors de la récupération d'un élément d'un champ Liste, la ligne entière est retournée, y compris les éventuels caractères EOT et TAB.
Par exemple pour le champ précédent, la fonction ci-dessous récupère le premier élément du champ Liste :
Ligne = LISTE_Liste4[1]
La variable Ligne contient le texte : "France " + TAB + EOT + " 30" + TAB + ",00"
Ainsi, il ne faut pas oublier d'extraire, si nécessaire, les caractères EOT et TAB.
Alignement dans les champs Combo avec saisie
Toutes les méthodes d'alignement présentées précédemment sont disponibles dans les champs Combo avec ou sans saisie.
Cependant, si les caractères EOT et TAB sont utilisés pour aligner les éléments d'un champ Combo avec saisie, la valeur affichée dans le champ lors de la sélection de l'élément contient des caractères d'alignement.
Il faut dans ce cas :
  • soit utiliser une police de largeur fixe (de type "Courier") et aligner les éléments par des espaces sans utiliser les caractères TAB et EOT (cette solution est conseillée car plus simple).
  • soit extraire les caractères EOT et TAB de l'élément sélectionné. Pour cela, il faut inclure le traitement adéquat dans l'événement "A chaque modification" du champ.
Dans ce cas, un élément ne peut pas être sélectionné dans le champ Combo avec le clavier, mais uniquement avec la souris.
Pour un champ Combo dont les éléments ont été ajoutés selon le format suivant :
ListeAjoute(LISTE_LISTE5, texte2 + TAB + EOT + "10" + TAB + ",00")
Le traitement d'extraction de TAB et EOT est le suivant :
// -- Sélection d'une ligne du champ Combo
// Extraction des caractères TAB 
Ch est une chaîne
Ch = MoiMême
// "FRANCE"+TAB+eot+30+tab+,00
Col1 est une chaîne = ExtraitChaîne(Ch, 1) // France
Col2 est une chaîne = ExtraitChaîne(Ch, 2) // eot+30
Col3 est une chaîne = ExtraitChaîne(Ch, 3) // ,00
// Extraction du caractère EOT
Col2 = ExtraitChaîne(Col2, 2, EOT) //30

MoiMême = SansEspace(Col1) + " " + SansEspace(Col2) + SansEspace(Col3)
Version minimum requise
  • Version 23
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale