Docking a Form inside another

The following example illustrates the effect of docking one Form in another.

      'Host' ⎕WC 'Form' 'Host'
      Host.DockChildren'Client'

      'Client' ⎕WC 'Form' 'Client'
      Client.Dockable'Always'

Notice that a dockable Form is indistinguishable in appearance between any other top-level Form except that it has additional items in its pop-up context (right mouse button) menu as shown.

The following picture shows the effect of dragging the Client Form to the top edge of the Host, just before the mouse button is released.

The next picture shows the result after docking. The Client Form has become a SubForm (white is the default background colour for a SubForm) called Host.Client.

The third picture illustrates the effect of docking the Client on the left-hand edge.

The following picture shows the Client Form docked as a SubForm along the right edge of the Host Form.

It is also possible to dock a Form into an already docked Form.

      'Client2' ⎕WC 'Form' 'Second Client'
      Client2.Dockable'Always'

which we can make dockable in both the Host Form and the Host.Client SubForm:

Host.DockChildren Host.Client.DockChildren'Client2'

The next picture shows Client2 about to be docked in the Client SubForm:

And finally, after it has been docked.