*------------------------------------------- * This example demonstrates the "modal toolbar * in topform" problem * Repro code by Lisa Slater Nicholls *------------------------------------------- PUBLIC ox, oy ox = CREATEOBJECT("simpleModalForm") ox.show(1) MESSAGEBOX("Notice that the toolbar was available.") oy = CREATEOBJECT("simpleTopForm") oy.Show() ox = CREATEOBJECT("simpleModalForm") ox.MyParent = oy ox.show(1) MESSAGEBOX("Notice that the toolbar was not available. " + CHR(13) + CHR(13) + ; "If you can find some activation syntax or sequence that makes " + CHR(13) + ; "the second toolbar available, we've got a workaround for Preview. " + CHR(13) + CHR(13) + ; "Otherwise, we don't, and neither does anybody else using modal child forms in topforms.") RETURN DEFINE CLASS simpleTopForm AS Form ShowWindow = 2 ENDDEFINE DEFINE CLASS simpleModalForm as Form MyToolbar = NULL ShowWindow = 1 MyParent = NULL WindowType = 1 PROCEDURE Show(tn) IF NOT ISNULL(THIS.MyParent) THIS.Height = THIS.MyParent.Height/2 THIS.Width = THIS.MyParent.Width/2 ENDIF THIS.Caption = "I am a Modal Form -- Close me when ready" THIS.MyToolbar = CREATEOBJECT("toolbar") THIS.MyToolbar.Addobject("x","MyButton") THIS.MyToolbar.x.visible = .t. THIS.MyToolbar.x.caption = "My button" THIS.MyToolbar.caption = "My toolbar" IF ISNULL(THIS.MyParent) THIS.MyToolbar.Show() ELSE ACTIVATE WINDOW (THIS.Name) IN WINDOW (THIS.MyParent.Name) ACTIVATE WINDOW (THIS.MyToolbar.caption) IN WINDOW (THIS.MyParent.Name) ENDIF THIS.Top = THIS.MyToolbar.Height + THIS.MyToolbar.Top + 20 ENDPROC PROCEDURE Destroy THIS.MyToolbar = NULL ENDPROC ENDDEFINE DEFINE CLASS MyButton as CommandButton PROCEDURE Click WAIT WINDOW "I am a toolbar button, and I'm available!" ENDPROC ENDDEFINE