Thread Button dyn. mit Array erzeugen
(7 answers)
Opened by Hagen at 2007-11-18 23:23
Hallo,
ich versuche gerade Buttons dynamische zu erzeugen. Leider tritt dabei ein Fehler auf, den ich (bisher) nicht so ganz verstehen. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 use strict; use warnings; use Tk; ... my $mainw = new MainWindow(-title => "TK Scrip-Starter"); ... # create buttons my @btn; for (my $i = 0; $i < @subs; $i++) { print "--> $subs[$i]\n"; $btn[$i] = $mainw->Button(-text => 'sub "'.$subs[$i].'" ('.$i.')', -anchor => 'w', -command => sub { print "-".$subs[$i]."-".$i."\n"; }, ) ->pack(); } # for ... MainLoop; Die print Anweisung macht noch keinen wirklichen Sinn, ist mehr für die Testphase. Allerdings bereitet genau diese ein Problem. Der Button-Text wird richtig und wie erwartet dargestellt. Aber innerhalb der print-Anweisung wird immer auf ein nicht vorhandenes Element zugegriffen ($i ist größer als @subs). Wenn z.B. @subs 2 Elemente entält, wird bei beiden (!) erzeugten Buttons auf subs[2] zugegriffen. Ich verstehe aber nicht warum bzw. wie man das ändern könnte. Gruß
Hagen |