On 1/16/07, johnf <[EMAIL PROTECTED]> wrote:
> On Tuesday 16 January 2007 10:50, Nate Lowrie wrote:
> > On 1/16/07, johnf <[EMAIL PROTECTED]> wrote:
> > > On Tuesday 16 January 2007 10:15, Nate Lowrie wrote:
> > > > On 1/16/07, johnf <[EMAIL PROTECTED]> wrote:
> > > > > On Tuesday 16 January 2007 09:50, Paul McNett wrote:
> > > > > > johnf wrote:
> > > > > > > That works - now what if I want the dialog form class to be
> > > > > > > universally available to all forms?
> > > > > >
> > > > > > Then you break it out into a MyDialog.py file, contents like:
> > > > > >
> > > > > > import dabo
> > > > > >
> > > > > > class MyDialog(dabo.ui.dDialog):
> > > > > >       ...
> > > > > >
> > > > > > You put the MyDialog.py file somewhere accessible to your forms
> > > > > > (same directory for simplicity is better. This is why I like the
> > > > > > AppWizard's ui/ directory). Then where you want to use it, do:
> > > > > >
> > > > > > import MyDialog
> > > > > > dlg = MyDialog.MyDialog(...)
> > > > > > dlg.showModal()
> > > > >
> > > > > So I gather that it's OK to have multiple import statements of the
> > > > > same import everywhere.   In VFP an universal function, procedure or
> > > > > class would be loaded at the beginning of an app.
> > > > >
> > > > > Set procedure to someProcedure or
> > > > > set classlib to someclass additive
> > > >
> > > > The import statement would be the equivalent of that.  Also consider
> > > > brushing up on Python Classes and how they are instantiated into
> > > > objects.
> > > >
> > > > > I have no need to add something like above?
> > > > >
> > > > > --
> > > > > John Fabiani
> > >
> > > No doubt I need to review most of Python.
> > >
> > > But I would have thought that I would create a file which contained my
> > > classes and import it at the beginning.
> > >
> > > import dabo
> > > import johnsClasses
> > >
> > > Then within a form I could say something like
> > > new_frm = johnsClasses.MydialogClass() #if this wrong say so please
> > > new_frm.show()
> > >
> > > I was sure I was right - but it does not work.  I'm missing something or
> > > coding something wrong.
> >
> > Sounds right.  You are doing what we suggested.  Can you provide a
> > stack trace or something to help us help you?
> >
> > > --
> > > John Fabiani
> > >
> > > _______________________________________________
> > > Post Messages to: [email protected]
> > > Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
> >
> > _______________________________________________
> > Post Messages to: [email protected]
> > Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
>
> OK I'm back where I started.  I'm again asking how to call a form class from
> within form function.  But below is the app.
> import os
> import inspect
> import dabo

I think you need a "dabo.ui.loadUI('wx')" right here.

> import johnClasses
>
>
> def main():
>         app = dabo.dApp()
>         curdir = os.getcwd()
>         # Get the current location's path
>         fname = inspect.getfile(main)
>         pth = os.path.split(fname)[0]
>         if pth:
>                 # Switch to that path
>                 os.chdir(pth)
>         app.MainFormClass = "custfrm1.cdxml"
>         app.start()
>
>         # Return to the original location
>         os.chdir(curdir)
>
>
> if __name__ == '__main__':
>         main()
>
> A function in the form
> def lookup():
>         new_frm = johnClasses.TestForm()
>         new_frm.showModal()
>
> The traceback:
> Traceback (most recent call last):
>   File "/home/johnf/downloads/dabo/dabo/lib/eventMixin.py", line 97, in
> raiseEvent
>     bindingFunction(event)
>   File "", line 971, in onHit
>   File "/tmp/tmpfJx8q2.py", line 13, in onHit_1
>     self.Form.lookup()
>   File "", line 949, in lookup
>   File "/tmp/tmpfJx8q2.py", line 99, in lookup_3
>     new_frm = johnClasses.TestForm()
> NameError: global name 'johnClasses' is not defined
>

Ed, Paul, thoughts on this....I was inclined to say that johnClasses
was not in the right directory, but then I saw the stack trace.  If it
couldn't find the py file, it would traceback on the import statement.

Could it possibly be something with the cdxml file?  I have not used
these yet.....If I had to take a gander, I would say that you imported
johnClasses in the main file, but it is trying to access the
johnClasses class from a different file, which doesn't recognize the
import from the main.  Paul, can you put import statements in the
cdxml file?

This is why I like coding by hand...........

> --
> John Fabiani
>
> _______________________________________________
> Post Messages to: [email protected]
> Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
>

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev

Reply via email to