Gambas France BETA


Pas de compte ? Incription

Alimenter un tableau :

Alimenter un tableau par le code :



Imaginons un tableau de cinquante valeurs à rentrer, devons nous rentrer ces cinquante valeurs par cinquante lignes de code ?

Nous le pouvons mais nous ne le ferons pas.

Commençons en créant un tableau de ValueBox :
1
PRIVATE $aTableVbx AS NEW ValueBox[]

Plaçons nos cinquante ValueBox sur notre formulaire.
Regroupons nos ValueBox dans un conteneur et arrangeons celui-ci à l'ouverture du formulaire :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
PUBLIC SUB Form_Open()

DIM vbx AS ValueBox '<---------------------------------' plusieurs ValueBox sont placées sur le formulaire
'<----------------------------------------------------------------' peut importe le nom de chaque ValueBox
'<----------------------------------------------------------------' tous les ValueBox sont rangés dans un conteneur
'<----------------------------------------------------------------' le conteneur est Arrangé par Rangée ou par Colonne

$iArrang = 3 '<-------------------------------------------' valeur de début, ici Rangée ou Row
enFonction() '<-------------------------------------------' affichage étiquette

$aTableVbx.Clear() '<----------------------------------' nettoyage de précaution
panTable.Arrangement = $iArrang '<--------------' le Panel contenant les ValueBox est arrangé par $iArrang

FOR EACH vbx IN panTable.Children '<------------' Pour chaque ValueBox contenu dans le Panel
$aTableVbx.Add(vbx) '<-------------------------------' J'ajoute chaque ValueBox dans le ValueBox[], la table en contient 50
NEXT

END

Nous alimentons notre tableau en valeurs par le tableau de ValueBox (ValueBox[]) et non par les ValueBox.Value :
1
2
3
4
5
6
7
8
9
10
11
PUBLIC SUB btnAlim_Click() '<------------------------------' bouton pour alimenter le tableau en valeur

DIM i AS INTEGER

$aTableVbx[0].Value = 1 '<------------------------------' valeur de départ

FOR i = 1 TO 49 '<----------------------------------------' alimentation du tableau
$aTableVbx[i].Value = $aTableVbx[i - 1].Value + 1 '<------' ici alimenté de un en un mais on fait ce qu'on veut
NEXT '<-------------------------------------------------------' de zéro à 49 cela fait 50 valeurs soit tout le tableau

END


Au lieu d'alimenter un tableau de plusieurs ValueBox en rentrant, par le code, chaque valeur dans chaque ValueBox nous avons profité du fait qu'un tableau (Array) possède un index pour tous les éléments contenus dans celui-ci.

En incrémentant l'index dans une simple boucle nous avons alimenté l'intégralité de notre tableau.
Pour cela nous avons dû préparer notre tableau.

Pour ne pas nous préoccuper de son agencement nous avons rentré l'ensemble de nos ValueBox sur notre formulaire, "en vrac".
Puis en sélectionnant l'ensemble de ces ValueBox, nous les avons intégrés dans un conteneur que nous avons arrangé selon nos besoins, en rangée ou bien en Colonne.

Vous pourrez voir la différence de résultat entre chaque arrangement en téléchargeant l'exemple de la forge reprenant l'intégralité de la démarche :



Les autres arrangements n'ont pas beaucoup de sens par rapport à notre besoin.


====================

Navigation :



<-- Liens du Wiki <--
<-- Accueil du WIKI : <--

====================

La Documentation :



====================