I have a specific question - how can I generalize a FileBrowseButtonWithHistory - and I realized, as I was trying to word my question, that my real question is a bit more generic.
First, the specific question: The FileBrowseButtonWithHistory requires a callback override and some custom code to straighten out handling the history. So far, so good. However, I wish to use more than one FBBWH on my form, and I can't figure out how to re-use the custom callback so it will work for both controls. (It makes me sick to my stomach when I look at my code and see duplicate blocks!) Don't get me wrong - it's working right now, it's just that my code is fugly and I want to clean it up. In more general terms, how can I set more than one control to use the same block of code as a custom callback, and figure out at runtime which control I'm responding to? Doesn't the Event or CommandEvent carry any information about itself? I've tried this: [snip] self.fp1 = filebrowse.FileBrowseButtonWithHistory(pnl, -1, size=(300, -1), labelText='', fileMask='*.*', fileMode=wx.OPEN, dialogTitle='Select the file containing UCF claims', changeCallback=self.fp1Callback) self.fp2 = filebrowse.FileBrowseButtonWithHistory(pnl, -1, size=(300, -1), labelText='', fileMask='FI*.*', fileMode=wx.OPEN, dialogTitle='Select the form-image file - generally starts with FI', changeCallback=self.fp2Callback) [snip] def fp1Callback(self, evt): print evt.__dict__ print help(evt) value = evt.GetString() [snip] def fp2Callback(self, evt): print evt.__dict__ print help(evt) value = evt.GetString() [snip] All I get from "print evt.__dict__" is: {'_string': u'E:\\ultrahld\\report\\FILE'} and all I get from help is: Help on instance of LocalEvent in module wx.lib.filebrowsebuttonobject:class instance(object) | instance(class[, dict]) | | Create an instance without calling its __init__() method. | The class must be a classic class. | If present, dict must be a dictionary or None. | | Methods defined here: | | __abs__(...) | x.__abs__() <==> abs(x) | ... in other words, I might as well have typed "help(object)". I only know that the method "evt.GetString()" exists because the example in the demo uses it. I've Googled, and Gmaned, and read the wx docs (such as they are), but I'm not seeing anything I can use. I know that this is a wxPython question, and that this is the Python list... but y'all have answered some wx questions in the past, and I hate to join another list for one question. If I must, I will... but thanks in advance for any light you can shed. -- www.fsrtechnologies.com
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor