[Gambas-user] Emulating wizard Back/Next navigation

Simonart Dominique simonart.dominique at ...11...
Thu Dec 11 22:40:54 CET 2008


M0E Lnx a écrit :
> Exactly.
> 
> The forward navigation depends on the user input, so it could jump
> from Form1 to Form3 and then to Form2 ans do on...
> 
> So if we leave a footprint in the array, I think it *should* be easy
> to reverse the process indeed sort of like an "undo" process.
> 
> But I'm not sure exactly what the best way to do the reverse is...
> should I index the array? or try to find the current form in the array
> and then just use the current forms.index in the array - 1 ?
> 
> I've been fidling with this for a while... and it works perfecly in my
> mind... but can't really make it work on the IDE :(
> 
> On Thu, Dec 11, 2008 at 2:23 PM, Simonart Dominique
> <simonart.dominique at ...11...> wrote:
>> M0E Lnx a écrit :
>>> I have to say, the array idea makes more sense to me, simply because
>>> otherwise, it'll be hard to tell the next and back buttons which sub
>>> to run.
>>>
>>> I have tried an array, but object array rather than string array.
>>>
>>> The idea is that every form that gets opened leaves a footprint in
>>> this object array
>>> for instance, the form's open() event would have something like this
>>>
>>> IF ArrNav.find(me) = -1 THEN ArrNav.Add(me)
>>>
>>> this makes reverse navigation possible by indexing the array or a
>>> similar method. However, I am not able to work out all the bugs
>>> resulting from this because it gets crazy when you try to move back,
>>> then forward... then back... ends up in a crash almost every time
>>>
>>> Can someone work out a sample I can use?
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Dec 11, 2008 at 6:20 PM, nando <nando_f at ...951...> wrote:
>>>> Perhaps the following ideas...
>>>> Every step in the wizard has an associated form for whatever it does for that step.
>>>> Every form has a SUB for 'backwards' and 'forwards so that
>>>> when NEXT is clicked, the forwards code runs, which is whatever
>>>> is required for moving to the next form (ie: perform work, verify info,
>>>> hide form, the activate 'next' form)
>>>> when BACK is clicked, the backwards code runs, which is whatever to
>>>> undo this step (if needed), hide form, activate 'back' form.
>>>> Each form knows how to go back one step, and go forward one step.
>>>> You would have to tell the Next and BAck buttons which forwards and backwards
>>>> sub to run...you could place in NEXT.tag and BACK.tag the form or info required
>>>> to properly run the correct code.  This would be modular so each form takes
>>>> care of things.
>>>> Or, the list of wizard steps could be in a global string array with the name
>>>> of the form and simply step through the index.
>>>> -Fernando
>>>>
>>>>
>>>> ---------- Original Message -----------
>>>> From: "M0E Lnx" <m0e.lnx at ...626...>
>>>> To: "mailing list for gambas users" <gambas-user at lists.sourceforge.net>
>>>> Sent: Wed, 10 Dec 2008 20:39:45 +0000
>>>> Subject: [Gambas-user] Emulating wizard Back/Next navigation
>>>>
>>>>> So I set myself to create a program that acts like a wizard, but chose
>>>>> not to use the wizard object because well, there is just too many
>>>>> variables here, and there is more than one way to get to the end,
>>>>> Depending on user input.
>>>>>
>>>>> So what I did was create a navigation tool bar at the bottom of FMain
>>>>> this toolbar has a BACK, EXIT, and a NEXT button.
>>>>>
>>>>> I have a workspace object above it which will host other forms via
>>>>> each forms .Reparent method.
>>>>>
>>>>> Can anyone suggest a way to make reverse and forward navigation on such a setup?
>>>>>
>>>>> I have created a small project what I'm trying to do... See attachment
>>>>>
>>>>> Any help is appreciated
>>>>>
>>>>> Thanks
>>>> ------- End of Original Message -------
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
>>>> The future of the web can't happen without you.  Join us at MIX09 to help
>>>> pave the way to the Next Web now. Learn more and register at
>>>> http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
>>>> _______________________________________________
>>>> Gambas-user mailing list
>>>> Gambas-user at lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>>>
>>> ------------------------------------------------------------------------------
>>> SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
>>> The future of the web can't happen without you.  Join us at MIX09 to help
>>> pave the way to the Next Web now. Learn more and register at
>>> http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
>>> _______________________________________________
>>> Gambas-user mailing list
>>> Gambas-user at lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>>
>>>
>> I think BACK has to be only an "undo" process, and NEXT is
>> the logical next state depending on the datas already
>> collected. If 2 forms could result from an actual status,
>> then you have to review the logical chain.
>>
>> my two cents :)
>> Dominique Simonart
>>
>>
>> ------------------------------------------------------------------------------
>> SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
>> The future of the web can't happen without you.  Join us at MIX09 to help
>> pave the way to the Next Web now. Learn more and register at
>> http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
>> _______________________________________________
>> Gambas-user mailing list
>> Gambas-user at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gambas-user
>>
> 
> ------------------------------------------------------------------------------
> SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
> The future of the web can't happen without you.  Join us at MIX09 to help
> pave the way to the Next Web now. Learn more and register at
> http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
> 
> 

The simpler is often the better :) May be you could write 
two procedures sort of PUSH and POP routines. Since the 
datas to keep should be limited enough, the better is to 
store all of them at each step with the last Object/form 
name. Since all data are implicitly correct (they passed 
correctly the preceeding step!) this is just a matter of 
display the form and to restore all the variables with the 
POPed values without control. This suppose of course the 
BACK could only reverse step by step. If you add something 
else in the BACK process, you could not be sure to return on 
the same initial state.

Dominique Simonart





More information about the User mailing list