[Gambas-user] Showing the Form's Gui

Jorge Carrión shordi at ...626...
Wed Apr 14 18:48:49 CEST 2010


Caveat:
Thank you very much for you module. I'll read it carefully.
Regards

2010/4/14 Caveat <Gambas at ...1950...>

> Hi Jorge,
>
> While we wait to see if Ricardo wants to share his open forms method
> (I'm also interested to see it), here's some code I have used before
> (see attachment) where the opening/closing of forms is handled by a
> module, which I've called RunController.
>
> The module is set as the Startup Class (normally that's by default the
> first Form you declare I think) and must have a Main() method.
> Right-clicking on the module brings up a context menu where you can
> click on the Startup Class checkbox.
>
> You can see that the RunController module can decide when it opens each
> form (so you could have some long-running data extraction go on in the
> background), and handles events raised by the forms (in conjunction with
> Attach, making sure RunController actually gets the events).
>
> One of the first things RunController does is to decide "should I first
> open up the settings form (no Dragons defined yet)?" or "should I show
> the main form already (at least one Dragon exists in settings)?":
>
>  IF theSettings.getDragonCount() = 0 THEN
>    settingsFrm = NEW SettingsForm
>    settingsFrm.Show
>    Object.Attach(settingsFrm, ME, "SettingsFrm")
>  ELSE
>    Logger.logMessage("RunController.Main() dragon found, so starting
> Remote Control", FALSE)
>    remC = NEW RemoteControl
>    remC.Show
>    Object.Attach(remC, ME, "Remote")
>    tCop = NEW TrafficCop
>    tCop.show
>    Object.Attach(tCop, ME, "Cop")
>  END IF
>
> One limitation of my approach is that you need to explicitly declare
> each form you're going to use up-front, so I'm interested to see if
> Ricardo's approach avoids that.
>
> Regards,
> Caveat
>
>
>
> On Wed, 2010-04-14 at 11:59 +0200, Jorge Carrión wrote:
> > Ricardo:
> > Could you post a example of your open forms method? I'm very interested
> on
> > it. It sound like something I have searching for a long time.
> >
> > Gracias
> >
> > Jorge
> >
> >
> > 2010/4/13 Ricardo Díaz Martín <oceanosoftlapalma at ...626...>
> >
> > > If It can help to someone, this is I always do:
> > >
> > > When I'm going to open a form, I always call my own OpenForm(FormName
> as
> > > String, Parameters as String) sub. This sub is not inside the form I'm
> > > going
> > > to open. It's a public sub that's is inside a utilities module.
> > >
> > > OpenForm() sub create new object with the form (f.e. FRMMain) and put
> its
> > > reference inside a public collection called OpenedForms. Before to show
> > > form
> > > to the user, I show other form with a progress bar and a label showing
> > > "Loading..." and I'm going executing SQL, show/hid controls, etc...
> with no
> > > show anything. If there thrownare a fixed steps to data load, I updated
> progress
> > > bar and when load process finish I show the form.
> > >
> > > I use this in all my apps (since lot of years when I never eared about
> > > gambas and I was programing in VB, Access, Java, etc...) and for me is
> the
> > > best option. For sure there is a lot of ways to do this.
> > >
> > > Regards,
> > > Ricardo Díaz
> > >
> > >
> > >
> > > 2010/4/13 Doriano Blengino <doriano.blengino at ...1909...>
> > >
> > > > Fabien Bodard ha scritto:
> > > > > 2010/4/13 Doriano Blengino <doriano.blengino at ...1909...>:
> > > > >
> > > > >> Fabien Bodard ha scritto:
> > > > >>
> > > > >>> just remember to put a flag to say when the data are loaded !
> > > > >>>
> > > > >>>
> > > > >> What would be the reason for this flag?
> > > > >>
> > > > > if the form is showed and the data not accessible ?
> > > > >
> > > > Really, there could be a problem if the user clicks a button 50 ms
> after
> > > > the button (and the whole form) is visible. A remote possibility, and
> > > > application-dependent. But I know users enough to imagine that
> someone
> > > > could do it... :-)
> > > >
> > > > Reducing the interval of the one-shot timer can help, but does not
> solve
> > > > (interval=0 could?). The better way is to disable actions the user
> could
> > > > do with invalid data (application dependent: who says that the form
> is
> > > > intended to receive clicks?), and perhaps add a nice label stating
> > > > "Loading data, please wait..." and so on.
> > > >
> > > > Anyway, the flag is the worse solution. Supposing you use a flag, and
> > > > the user clicks or types too fast, what would you do? A
> > > > Message.Info("You clicked too fast. Go to have a coffee and come back
> > > > later.")? :-) Better to disable some controls, so the user is
> informed
> > > > before; in addition, controls are already "global variables" which
> carry
> > > > informations with them. Well, this is my opinion - I hate to
> duplicate
> > > > informations around, but someone else on this list, time ago, said
> > > > "never use the GUI to store information". The problem with global (or
> > > > class) variables is that you can forget them more easily than some
> > > > property of a visible control.
> > > >
> > > > Regards,
> > > > Doriano
> > > >
> > > >
> > > >
> > > >
> > >
> ------------------------------------------------------------------------------
> > > > Download Intel® Parallel Studio Eval
> > > > Try the new software tools for yourself. Speed compiling, find bugs
> > > > proactively, and fine-tune applications for parallel performance.
> > > > See why Intel Parallel Studio got high marks during beta.
> > > > http://p.sf.net/sfu/intel-sw-dev
> > > > _______________________________________________
> > > > Gambas-user mailing list
> > > > Gambas-user at lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > > >
> > >
> > >
> ------------------------------------------------------------------------------
> > > Download Intel® Parallel Studio Eval
> > > Try the new software tools for yourself. Speed compiling, find bugs
> > > proactively, and fine-tune applications for parallel performance.
> > > See why Intel Parallel Studio got high marks during beta.
> > > http://p.sf.net/sfu/intel-sw-dev
> > > _______________________________________________
> > > Gambas-user mailing list
> > > Gambas-user at lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >
> >
> ------------------------------------------------------------------------------
> > Download Intel® Parallel Studio Eval
> > Try the new software tools for yourself. Speed compiling, find bugs
> > proactively, and fine-tune applications for parallel performance.
> > See why Intel Parallel Studio got high marks during beta.
> > http://p.sf.net/sfu/intel-sw-dev
> > _______________________________________________
> > Gambas-user mailing list
> > Gambas-user at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
>
>
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
>



More information about the User mailing list