Hi All,
I have been Working with the Learning Xdialog that ships with A5.
In lesson 17 there is the Creating a genie dialog box,
The code does not work as intended, It is not meant to move on to the next page if a field is not filled it, I would like to implement this feature on a dialog box that I have built, can anybody tell why it does not work.
Andy
Code from Lesson I have highlighted the relevant code
I have been Working with the Learning Xdialog that ships with A5.
In lesson 17 there is the Creating a genie dialog box,
The code does not work as intended, It is not meant to move on to the next page if a field is not filled it, I would like to implement this feature on a dialog box that I have built, can anybody tell why it does not work.
Andy
Code from Lesson I have highlighted the relevant code
Code:
page = 1 max_pages = 3 dim genie_stay as l 'flag controls if you can move off the current genie page. genie_stay = .f. dim error_message as c error_message = "" 'error message if you try to move off the current page when all conditions have not been met. vl = local_variables() define_pages(vl) set_flags(vl) ui_dlg_box("Genie",<<%dlg% {startup=init} {region0} {region1} {wrap=20}; This script demonstrates an approach to designing a Genie with Xdialog, using Embedded Dialog boxes.; {lf}; The text in this region will appear on all Genie pages.; {lf}; {image=group} {endregion1}|{sp}| {frame=1,1} {region3} {embedded=60,15genie} {endregion3}; {region} {endregion}; {endregion0}; {region} {justify=right}<15&Cancel> <15<&Previous!previous?flag_previous> <15&Next\>!next?flag_next> <15&Finish!finish?flag_finish> {endregion} %dlg%, <<%code% if a_dlg_button = "finish" then end if if a_dlg_button = "init" then a_dlg_button = "" show_page(vl,1) end if if a_dlg_button = "next" then a_dlg_button = "" page = page + 1 if page > max_pages then page = max_pages end if show_page(vl,page) end if if a_dlg_button = "previous" then a_dlg_button = "" page = page - 1 if page < 1 then page = 1 end if show_page(vl,page) end if %code%) [B]function show_page as c (vars as p, page as n ) with vars if genie_stay = .f. then temp_code = eval("page_"+page) evaluate_template(temp_code) set_flags(vl) else ui_msg_box("Error",error_message,UI_STOP_SYMBOL) end if end with end function [/B] function define_pages as c (vars as p) with vars page_1 = <<%dlg2% ui_modeless_dlg_box("genie",<<%dlg% {cellspillover=on} {lf}; Welcome to the Xdialog genie.; {lf}; Press the Next button below to get started.; %dlg%,<<%code% 1=1 %code%) %dlg2% page_2 = <<%dlg2% ui_modeless_dlg_box("genie",<<%dlg% {cellspillover=on} Enter your name:; {lf}; {lf}; Firstname: | [.30fname]; {lf}; Lastname: | [.30lname]; %dlg%,<<%code% 1=1 %code%) %dlg2% page_3 = <<%dlg2% ui_modeless_dlg_box("genie",<<%dlg% {cellspillover=on} Enter your age:; {lf}; {lf}; Age: | [.30age]; {lf}; %dlg%,<<%code% 1=1 %code%) %dlg2% end with end function function set_flags as c (vars as p) with vars if page = max_pages flag_finish = .t. flag_next = .f. flag_finish = .t. flag_previous = .t. else if page = 1 then flag_next = .t. flag_previous = .f. flag_finish = .f. else flag_next = .t. flag_previous = .t. flag_finish = .f. end if end with end function
Comment