Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# lire tous les elements selectionner dans la boite de liste 1
my @indices_enz_select;
 
my $bouton1vers2 = $main->Button(
    -text    => '>>',
    -command => sub {
 
        # lire element selectionner dans la boite de liste 1
        my @elt_selectionnes = $liste1->curselection();
 
	# ajout des éléments dans @indices_enz_select
	push @indices_enz_select, @elt_selectionnes;
 
        foreach my $elt1 (@elt_selectionnes) {
 
            # Déplacement dans la liste 2
            $liste2->insert( 'end', $liste1->get($elt1) );
 
            # suppression de la liste 1
            $liste1->delete($elt1);
        }
    },
);
my $bouton2vers1 = $main->Button(
    -text    => '<<',
    -command => sub {
 
        # lire element selectionner dans la boite de liste 1
        my @elt_selectionnes = $liste2->curselection();
 
	# suppression des éléments dans @indices_enz_select
	map {delete $indices_enz_select[$_];} @elt_selectionnes;	
 
        foreach my $elt2 (@elt_selectionnes) {
 
            # Déplacement dans la liste 1
            $liste1->insert( 'end', $liste2->get($elt2) );
 
            # suppression de la liste 2
            $liste2->delete($elt2);
        }
    },
);
J'aimerais récupérer dans @indices_enz_select les indices de la liste des éléments sélectionnés. Le problème est que les indices de @elt_selectionnes changent à chaque passage par les boutons et donc ne me permettra pas de retrouver au final les valeurs associées aux éléments sélectionnés. La solution serait donc à mon avis de récupérer les valeurs directement, est-ce la meilleure solution?


Merci pour votre aide,