Hallo zusammen,
ich sitze seit einiger Zeit an einem Problem mit meiner Listbox und komme nicht weiter, vielleicht kann mir ja hier jemand helfen.
Ich habe ein Fenster in dem es 2 Listboxen gibt, die beide die Auswahlmöglichkeit "extended" haben. dazwischen ein Button "add".
Ich möchte das so haben, dass ich 1-x Elemente aus der ersten Listbox auswählen kann und per "add"-Knopf in die zweite Listbox übernehmen kann. Das ist soweit kein Problem. Jetzt möchte ich aber aus der zweiten Listbox auch 1-x Elemente mit einem "remove"-Button entfernen können, und das klappt nicht.
Wenn ich beispielsweise 5 Elemente entfernen möchte, werden zwar 5 Elemente entfernt, aber nur jedes zweite, also Element 1, 3, 5, 7, 9 anstatt 1 bis 5.
Mein Code sieht so aus:
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
sub remove_element {
my @all = $listbox->get(0, 'end');
my @selected_no = $listbox->curselection();
my @selected_name;
my $index = 0;
foreach(@selected_no){
push(@selected_name, $listbox->get($_));
}
foreach(@selected_name){
$listbox->delete(
get_element_index(\@all, $selected_name[$index]));
$index++;
}
}
sub get_element_index {
my ($arr_reference, $ele) = @_;
my @arr = @{$arr_reference};
my $index = 0;
foreach(@arr){
if($_ eq $ele){
return $index;
}
$index++;
}
}
Ich habe schon ein paar Sachen probiert, aber ich komm einfach nicht drauf, wie ich es hinkriege, dass wenn ich Element 1-5 markiere und auf den "remove"-button klicke, auch wirklich die Elemente 1-5 entfernt werden.
Danke schonmal
mod-edit pq: perl-tags hinzugefügt
Last edited: 2009-09-07 14:49:48 +0200 (CEST)