<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:Courier New,courier,monaco,monospace,sans-serif;font-size:12pt"><div>Including the list - please use ReplyAll.<br><br></div><div style="font-family: Courier New,courier,monaco,monospace,sans-serif; font-size: 12pt;"><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Its the file that you want to scan - assuming there is a file.<br>
It could be a list or anything else - I don't actually know from<br>
your code what onScan is supposed to do! :-)</blockquote><div><br>&gt; Well, My code is supposed to do a lot. My actual onScan looks like this:<br><br>&nbsp;&nbsp;&nbsp; def OnScan(self, event):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; startScan = '''TSO will now start creating a log.<br>Please be patient as this can take from 5 up to 10 minutes.<br>Please press OK to start TSO.'''<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dlg2 = wx.MessageDialog(self, startScan, 'Starting TSO.', wx.OK|wx.ICON_INFORMATION)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dlg2.ShowModal()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dlg2.Destroy()<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scan()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dlg = wx.MessageDialog(self, 'The log is done.\n Press OK to return to TSO.', <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Done Creating Log.',&nbsp;&nbsp;&nbsp; wx.OK|wx.ICON_INFORMATION)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dlg.ShowModal()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dlg.Destroy()<br><br>&gt; the part that calls for the features in TSO (scan()) is simply defined later in the program <br>&gt; (out of the class I might add). Is this a
 problem for the gauge bar?<br><br>Possibly. For the guage to display progress it needs a way to get the intermediate <br>progress. If the scan() function updates some global variable or has a hook function <br>to call for periodic update then all is well. But if it is a single monolithic bit of code <br>there is very little you can do. <br><br>Given the scan() function is external to the GUI - as it should be - then I'd probably <br>opt for running scan() inside a thread and using a non-modal dialog to indicate that <br>the scan is running - maybe with a simple timer display to show that its still running. <br>Then at the end of the scam either just delete the dialog or bring it to the top to make <br>the user delete it - thus seeing that the scan is complete. By making it non-modal <br>the user can carry on using the GUI while scanning.<br><br>&nbsp;&gt; (Let me know if you need to know the complete scan() code as well.<br>Probably not since I'm
 guessing it is basically a single loop with no breakouts <br>or callback hooks.<br></div></div><br>Alan G.<br></div></div></div></div></body></html>