use warnings; use strict; #### -textvariable => \${$ComboBoxName}, -choices => \@{$ComboBoxName."List"}, -browsecmd =>\&{"on".$ComboBoxName."ComboBoxSelect"} #### #!/usr/bin/perl use warnings; use strict; use Tk; use Tk::JComboBox; my %box; my $ScreenSize = "300x250+50+50"; my $MainScreenObject = MainWindow->new(-background =>"white"); $MainScreenObject->geometry($ScreenSize); my @TestList = ('12','123','12345'); $box{1}{'var'} = 1; $box{1}{'obj'} = createComboBox(1,5,100,50); $box{2}{'var'} = 2; $box{2}{'obj'} = createComboBox(2,15,100,150); MainLoop; sub ComboBoxSelect { my $list = shift; print "Browsing $list\n"; my @TestList1 = ('a','b','cde'); $box{$list}{'obj'}->configure(-choices => \@TestList1 ,-state => 'normal'); } sub createComboBox { my($ComboBoxName,$Width,$x,$y) = @_; my $ComboBoxObject = $MainScreenObject->JComboBox( -background =>'white', -textvariable => \$box{$ComboBoxName}{'var'}, -choices => \@TestList, -browsecmd => [\&ComboBoxSelect,$ComboBoxName], -entrywidth =>$Width,)->place(-x=>$x,-y=>$y); return($ComboBoxObject); }