[Gambas-user] Showing the Form's Gui

Ricardo Díaz Martín oceanosoftlapalma at ...626...
Wed Apr 14 21:58:01 CEST 2010


This is a gb2 project example about we were talking. Excuse me but is in
Spanish (I got no enough time to do something better than this). I was
cutting/pasting for a while and deleting extra thinks to get this example.
If not exactly the same I use but I hope It can help you.

Caveat, I need an explicit form declaration too because gambas can't create
a object by name (or I think so).

Please note it's only an example.

Regards,
Ricardo Díaz

El 14 de abril de 2010 18:48, Jorge Carrión <shordi at ...626...> escribió:

> 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
> >
> >
>
> ------------------------------------------------------------------------------
> 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
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenFormExample.tar.gz
Type: application/x-gzip
Size: 19765 bytes
Desc: not available
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20100414/93d27e59/attachment.bin>


More information about the User mailing list