4D v16.3Tableaux et objets de formulaire |
||
|
4D v16.3
Tableaux et objets de formulaire
Tableaux et objets de formulaire
Les tableaux sont des objets de langage — vous pouvez créer et utiliser des tableaux qui n'apparaîtront jamais à l'écran. Cependant, les tableaux sont aussi des objets d'interface utilisateur. Voici les types d'objets de formulaire gérés par des tableaux :
Si vous pouvez prédéfinir ces objets dans l'éditeur de formulaires en utilisant le bouton des valeurs par défaut de la Liste des propriétés (hormis les List box), vous pouvez également les définir par programmation, en utilisant les commandes de tableaux. Dans les deux cas, l'objet formulaire est géré par un tableau, créé par vous ou par 4D. En utilisant ces objets, vous pouvez détecter quel élément de l'objet a été sélectionné (ou a reçu un clic souris) en testant l'élément sélectionné du tableau. Inversement, vous pouvez sélectionner un élément de l'objet en désignant l'élément de tableau correspondant. Quand un tableau est utilisé pour gérer un objet de formulaire, il a une nature double ; il est à la fois un objet de langage et un objet d'interface utilisateur. Par exemple, créez un formulaire, dans lequel vous placez une zone de défilement : Le nom de la variable associée, ici taNoms, est le nom du tableau que vous utilisez pour créer et gérer la zone de défilement. Notes :
L'exemple suivant montre comment remplir un tableau et l'afficher dans une liste déroulante. Un tableau arSalaires est créé au moyen de la commande ARRAY REAL. Il contient tous les salaires des personnes dans une entreprise américaine. Lorsque l'utilisateur sélectionne un élément dans la liste déroulante, le champ [Personnel]Salaire reçoit la valeur choisie. Créez une liste déroulante et nommez-la arSalaires. Le nom de la liste déroulante doit être le même que celui du tableau. Initialisez le tableau arSalaires en spécifiant l'événement On Load pour l'objet. Pour cela, n'oubliez pas d'activer cet événement dans la Liste des propriétés, comme illustré ci-dessous : Cliquez sur le bouton Méthode objet... et écrivez la méthode suivante : Les lignes : ARRAY REAL(arSalaires;10) ... créent le tableau numérique 2500, 3000... 7000, correspondant aux salaires annuels allant de $30 000 à $84 000, avant impôts. Les lignes : arSalaires:=Find in array(arSalaires;[Employés]Salaire) ... gèrent à la fois la création d'un nouvel enregistrement et la modification d'un enregistrement existant.
Note : Pour plus d'informations concernant l'élément de tableau sélectionné, lisez les paragraphes suivants. Pour reporter la valeur sélectionnée dans la liste déroulante arSalaires, il vous suffit de gérer l'événement On Clicked de l'objet. Le numéro de l'élément sélectionné est la valeur du tableau arSalaires. En conséquence, l'expression arSalaires{arSalaires} retourne la valeur choisie dans la liste déroulante. Complétez ainsi la méthode de l'objet arSalaires : Case of En exécution, la liste déroulante se présente comme suit : Les paragraphes suivants décrivent les opérations élémentaires que vous pouvez effectuer sur les tableaux lorsque vous les utilisez comme objets de formulaire. Vous pouvez obtenir la taille courante d'un tableau au moyen de la commande Size of array. Si on reprend l'exemple précédent, la ligne de code qui suit affichera 5: ALERT("La taille du tableau taNoms est: "+String(Taille tableau(taNoms))) Vous pouvez réordonner les éléments d'un tableau au moyen de la commande SORT ARRAY ou de plusieurs tableaux à l'aide de la commande MULTI SORT ARRAY. Si on reprend l'exemple précédent, et étant entendu que le tableau est affiché comme une liste déroulante, vous pourrez voir ceci : (a) Sur la gauche, la liste telle qu'elle se présente initialement. (b) Au centre, la liste telle qu'elle se présente après l'exécution de la ligne de code suivante : SORT ARRAY(taNoms;>) (c) Sur la droite, la liste telle qu'elle se présente après l'exécution de la ligne de code suivante : SORT ARRAY(taNoms;<) Vous pouvez ajouter, insérer, ou supprimer des éléments de tableau au moyen des commandes APPEND TO ARRAY, INSERT IN ARRAY et DELETE FROM ARRAY. Si on reprend l'exemple précédent, étant entendu que le tableau est affiché en tant que liste déroulante, vous pouvez gérer les clics souris de la manière suivante : ` Méthode objet liste déroulante taNoms Note : Les événements doivent avoir été activés dans les propriétés de l'objet. Alors que la syntaxe taNoms{$vlElem} vous permet de travailler sur un élément particulier du tableau, la syntaxe taNoms retourne le numéro de l'élément sélectionné dans le tableau. Ainsi, la syntaxe taNoms{taNoms} signifie “la valeur de l'élément sélectionné dans le tableau taNoms.” Si aucun élément n'est sélectionné, taNoms est égal à 0 (zéro). Le test Si (taNoms#0) détecte si un élément est effectivement sélectionné ou non. Vous pouvez changer par programmation l'élément sélectionné en assignant une valeur au tableau. ` Sélectionner le premier élément (si le tableau n'est pas vide) La commande Find in array recherche une valeur particulière dans un tableau. Si nous reprenons l'exemple précédent, voici le code qui sélectionnera l'élément dont la valeur est “Richard”, si c'est ce que vous saisissez dans la boîte de dialogue de demande : $vsNom:=Request("Saisissez un prénom :") Les pop-up menus, listes déroulantes, zones de défilement et les onglets peuvent généralement être gérés de la même manière. Bien entendu, aucun code supplémentaire n'est nécessaire pour le redessinement des objets à l'écran à chaque fois que vous modifiez la valeur d'un élément, en ajoutez ou en supprimez. Note : Pour créer et utiliser des onglets avec des icônes ainsi que des onglets activés ou désactivés, vous devez utiliser une liste hiérarchique comme objet de gestion associé à l'onglet. Pour plus d'informations, reportez-vous à l'exemple de la commande Count tasks. Alors que vous pouvez gérer au moyen des algorithmes décrits dans la section précédente les pop-up menus, les listes déroulantes, les zones de défilement et les onglets, vous devez gérer les combo boxes différemment. Une combo box est en réalité une zone de texte saisissable à laquelle est rattachée une liste de valeurs prédéfinies (les éléments d'un tableau). L'utilisateur peut choisir une valeur dans cette liste, et ensuite éditer le texte. En conséquence, pour une combo box, la notion d'élément sélectionné ne s'applique pas. Avec les combo boxes, il n'y a jamais d'élément sélectionné. A chaque fois que l'utilisateur sélectionne une des valeurs attachées à la zone, cette valeur est placée dans l'élément zéro du tableau. Ensuite, si l'utilisateur modifie le texte, la valeur modifiée est aussi placée dans cet élément zéro. ` Méthode objet Combo Box asCouleurs
Voir aussi
|
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
UTILISATION DE L'ARTICLE
4D - Langage ( 4D v16) |