*--Not a realworld example but it shows the logic of building the array *--in the old FPD26 Dos APP: DO CASE CASE ag_state = "NC" and ag_type = "FULL" pagescreen(1)="screena.spr" pagescreen(2)="screenb.spr" pagescreen(3)="screenc.spr" CASE ag_state = "SC" and ag_type = "FULL" pagescreen(1)="screena.spr" pagescreen(2)="screenf.spr" &&(replaces screenb as the 2nd screen) pagescreen(3)="screenc.spr" pagescreen(4)="screend.spr" &&(this screen added) CASE ag_state = "NC" and ag_type = "NON" *etc... ENDCASE *--Determine the last page of the application pageend = ALEN(pagescreen,1) *-- The editpage procedure shows the appropriate screen on the page and *--tracks the keystroke to determine if the pages should cycle up or down *--(pageup or pagedwn pressed) etc. Do editpage *etc.I have been adding screens to the forms I've converted so far as pages in a pageframe successfully, however, that does not solve the problem of creating a dynamic page order. The page order would be set initially and would not change during the session at all. It would be dependent on the values of some public variables that will already be set. Any ideas how best to handle this? In the forms I have done so far I have added code in the form's keypress event to check the active page and set the focus appropriately so the focus is never on the pagetab but on the first control on the page if the user pressed pagedown (or exited the last control on the previous page) and on the last control of the page if the user pressed pageup from the next page in the sequence, etc.