Let me try to explain:
In the Form User Manual I could read:
> The difference between auxiliary and tool dialog boxes is that auxiliary
> dialog boxes are self-contained, e.g. dialog boxes to set up configuration
> parameters or data entry masks. Tool dialog boxes on the other hand operate
> on windows below them, e.g. the Find & Replace dialog box operates on the
> text beneath the dialog box.
Examples for Aux dialogs are Wolfgang's EduSort Panel (a dialog which
contains several buttons, fields and a sort view), ObxOrders (a dialog which
shows the contents of a data base) or the Decode dialog of the Coder.
As aux dialogs are self contained, they can be overlapped by other windows.
Examples for Tool dialogs are Find & Replace (working on the text below
the dialog) or the control property editor (working on the form below the
tool dialog). Tool dialogs are always front windows, they cannot be over-
lapped by regular windows.
If you ask for the focus view in a command called from within a dialog,
the result depends on whether the dialog was opened as tool dialog or
as aux dialog. In the latter case, the dialog itself has the focus.
Containers.Focus returns the dialog itself and you can start
iterating over its content. Controllers.FocusView returns the view
which currently has the focus, and this is the push button currently
being pressed! Note, that the latter can also be accessed via
Controls.par.
In case of a tool dialog, the focus is the focus of the window below the
tool dialog, e.g. a text (as for the Search&Replace dialog) or another
form (as for the property editor dialog).
Thus, if you want to search for a view in a dialog then
1) open the dialog as aux dialog
2) execute c := Containers.Focus() to access the form controller
3) look for the view you are searching for
c.GetFirstView(Controllers.any, v);
WHILE (v # NIL) & (v is not what you are looking for) DO
c.GetNextView(Controllers.any, v)
END
- Dominik
Received on Sat Feb 20 1999 - 11:09:07 UTC