> you did not call dialog() for the second window:
When I do that it still doesn't stop on each window. I'm running
Win32-gui 0.490.
If I move the Win32::GUI::Dialog() after this line:
$Win2->Update();
It does stop but it also does very strange things (like doesn't let
me close out the program). The documentation also says you should
not call Win32::GUI::Dialog() more than once. ...but hey, thank
for the idea. :)
-dave
> sub Loop_Click {
>
> foreach $i (0 ... 3) {
> &Show_Win2($i);
> sleep 1;
> }
> Win32::GUI::Dialog(); ##add this and it works
> }
>
>
> -rob
>
>
>
> David Hiltz wrote:
> >
> > Below you will a small Win32::GUI program that displays a window with a
> > button labeled "Loop". When you click on the button it calls a
> > subroutine which should display another window with a number and an OK
> > button. I want the program to wait between each display of the second
> > window (waiting for the user to click "OK"), but instead you see the
> > number changing and it comes to rest on the last number.
> >
> > Any ideas?
> >
> > Thanks -David Hiltz
> >
> >
> > use Win32::GUI;
> >
> > $Win = new Win32::GUI::Window(
> > -left => 341,
> > -top => 218,
> > -width => 300,
> > -height => 213,
> > -name => "Win",
> > -text => "Window Title"
> > );
> >
> > $Win->Show();
> >
> > $Win->AddButton(
> > -text => "Loop",
> > -name => "Loop",
> > -left => 104.5,
> > -top => 102,
> > -width => 95,
> > -height => 28,
> > );
> >
> > $Win2 = new Win32::GUI::Window(
> > -left => 391,
> > -top => 238,
> > -width => 200,
> > -height => 183,
> > -name => "Win2",
> > -title => "New Window",
> > );
> >
> > $Win2->AddLabel(
> > -text => "",
> > -name => "Label",
> > -left => 60,
> > -top => 30,
> > -width => 20,
> > -height => 20,
> > );
> >
> > $Win2->AddButton(
> > -text => "OK",
> > -name => "OK",
> > -left => 50,
> > -top => 102,
> > -width => 95,
> > -height => 28,
> > );
> >
> > Win32::GUI::Dialog();
> >
> > sub Win_Terminate {
> > return -1;
> > }
> >
> > sub OK_Click {
> > $Win2->Hide();
> > }
> >
> > sub Loop_Click {
> >
> > foreach $i (0 ... 3) {
> > &Show_Win2($i);
> > sleep 1;
> > }
> > }
> >
> > sub Show_Win2 {
> > my($num) = @_;
> >
> > $Win2->Label->Text($num);
> > $Win2->Show();
> > $Win2->Update(); # This will make the OK button show up, but
> > # the window will not wait for a click of the OK.
> > }
>