[R] Optimisation du code ? Affichage tableau -> GUI

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
nightshark
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 15 sept. 2010 18:07
Status : Hors ligne

[R] Optimisation du code ? Affichage tableau -> GUI

#1

Message par nightshark »

La nuit portant conseil j'ai résolu mon problème.
Bonjour. Suite à divers manipulation j'obtiens un tableau 9 sur 4. Je veux créer ensuite un GUI qui va afficher le contenu de chaque case dans un label.

1 - Je crée donc une boucle pour créer chaque label de la première colonne avec une incrémentation de la position du label.
2 - Je ré-initialise la position de la première cellule (de la 2è colonne)
3 - Nouvelle boucle pour la 2è colonne.

On répète pour les colonnes suivantes, soit 4 boucles au total.

Y-a-t'il un moyen d'optimiser / réduire le nombre de boucle ?

Code : Tout sélectionner

;~ position initiale des éléments graphiques
Local $i_left_ini = 16
Local $i_top_ini = 16

;~ dimensions des éléments graphiques
Local $i_width = 200
Local $i_height = 30

;~ espacements des éléments graphiques
Local $i_esp_hrz = 50
Local $i_esp_vrt = 30

For $x = 0 to 3
    For $y = 0 to ($as_liste_v1[0])
        GUICtrlCreateLabel( $as_liste_v2[$y][$x], ($i_left_ini + (($i_width + $i_esp_hrz)*$x)), ($i_top_ini + (($i_height + $i_esp_vrt)*$y)), $i_width, $i_height)
    Next
Next
Rapace15
Niveau 3
Niveau 3
Messages : 36
Enregistré le : lun. 17 mai 2010 14:15
Status : Hors ligne

Re: [..] Optimisation du code ? Affichage tableau -> GUI

#2

Message par Rapace15 »

Bonjour,

Pourquoi ne pas imbriquer tes boucles ?
ça pourrais donner cela (je passe la déclaration des variables)

Code : Tout sélectionner

For $Lig = 1 to 9
    ; Définition de la position 
    $Pos_verticale =  $i_top_c1 + $i_espace_vert * ($Lig -1)
    ; pour chaque ligne j'écris les colonnes
    For $Col = 1 to 4
        ;Définition de la position 
        $Pos_horizontale = $i_left_c1 + $i_espace_hori * ($Col -1)
        ; Mise en place du Label
        GUICtrlCreateLabel( $as_liste_v2[$Lig][$Col], $Pos_horizontale, $Pos_verticale, $i_width, $i_espace_vert, $WS_BORDER)
    Next
Next
 
Répondre