Caveat: Thank you very much for you module. I'll read it carefully. Regards
2010/4/14 Caveat <gam...@caveat.demon.co.uk> > 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 <oceanosoftlapa...@gmail.com> > > > > > 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.bleng...@fastwebnet.it> > > > > > > > Fabien Bodard ha scritto: > > > > > 2010/4/13 Doriano Blengino <doriano.bleng...@fastwebnet.it>: > > > > > > > > > >> 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@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@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@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@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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user