The Skin Selection dialog enables users of runtime applications to select the skin that they want to use during the current runtime work session. For details about enabling runtime users to define or maintain JADE skins that you have provided, see "Defining and Maintaining JADE Skins". The following example shows the creation and use of the JadeSkinSelect form from a
selectSkin_click(menuItem: MenuItem input) updating; vars form : JadeSkinSelect; begin create form; form.showModal; epilog delete form; end;
When using the Skin Selection dialog:
The form is displayed using the requested skin.
The option buttons, check boxes, and buttons display the skin presentations.
The Show Menu? check box enables users to view the effects of a skin with and without a menu.
The Apply button causes that skin to be applied to the forms of the current application.
The Clear Skin button removes the use of a skin from the current application.
The Cancel button leaves the skin usage unchanged.
Programmatically, if the user:
Selects a skin, modalResult = JadeSkinSelect.Skin_Chosen(1) and the userObject property contains the selected skin.
Clicks the Cancel button, modalResult = JadeSkinSelect.Skin_Cancel(0).
Clicks the Clear Skin button, modalResult = JadeSkinSelect.Skin_Cleared(2).
Use the
To select a skin for use in the current work session
Select the skin from the list that is displayed in the Select Skin combo box. The option buttons, check boxes, and buttons then display the presentation offered by the selected skin.
Click the Show Menu? check box to view the effects of a skin without a menu. By default, a check mark symbol (✓) is displayed in this control, indicating that the menu line is displayed on the Skin Selection dialog.
To apply the selected skin to all forms in the current application during the current work session, click the Apply button. Alternatively, perform one of the following actions.
Click the Clear Skin button to remove the use of a skin from the current application.
Click the Cancel button to abandon your selections and leave the skin usage unchanged.
The following image shows an example of the Skin Selection dialog using a skin.
The JADE executable calls the DisableProcessWindowsGhosting() Microsoft API on initiation, which disables Windows’ ghosting so that a non-responsive form does not show Not Responding and have the ghosting effect applied by Windows.
The form will still not automatically paint itself when the presentation thread is busy processing JADE logic. Windows automatically redraws that part of the form or forms that need refreshing from a saved copy of the previously painted image or images.
You can call the following methods while performing a long processing loop to address the repainting issue.
The
Other than any
The
After a repaint, any clicked button that initiated the processing loop will be drawn in the up position, so it will be important that the user is given a visual indication that the processing is still progressing by some other means; for example, using the
You will need to add a call to your logic loop that is regularly performed; for example, call it when the Cancel button is checked for a
cancelled := false; while not cancelled do .... logic // the click event sets the cancelled property btnCancel.doWindowEvents(0); app.paintIfRequired(); endwhile;