Hallo
Ich habe ein Problem. Das Folgende Programm sollte beim klick auf "Anzeigen" immer den Wert des Entrys, auf der selben Zeile, anzeigen. Jedoch wird immer nur der letzte Wert angezeigt. Was mache ich falsch?
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
44
45
46
use Win32::Registry;
use Tk;
use Tk::Label;
$mw = MainWindow->new;
$mw->title("Hallo Welt");
✓
MainLoop;
sub check {
$::HKEY_LOCAL_MACHINE->Open("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", $hkey);
$z = 0;
my @values;
$hkey->GetValues(\%values);
foreach $key (keys %values) {
$hkey->QueryValueEx("$key", $type, $value);
$z++;
$k = $mw->Label(-text => "$key",);
$k -> grid(-row=>$z, -column=>'1');
$e{$z} = $mw->Entry(-width => 30, -textvariable => \"$value");
$e{$z} -> grid(-row=>$z, -column=>'2');
$key1 = $key;
$b{$z} = $mw->Button(-text => 'Anzeigen',
-command => sub{aendern("$key1", $e{$z})}
);
$b{$z} -> grid(-row=>$z, -column=>'3');
}
#####
}
sub aendern {
my ($wert, $schl) = @_;
$schl = $schl->get;
$mw->Label(-text => "$wert | $schl |",)->pack;
}
Gruss freeclimber