How the Cancel button works

Warning This help topic refers to a previous version of InstallMate. It has not been updated for InstallMate 9 yet.

All installers have Cancel buttons on each dialog page. There are no general switches and no black magic either as to how these are implemented; they use standard installer actions. This topic explains how.

General operation of the Cancel button

Each dialog box with a Cancel button has an event handler for that button's OnClicked event; see the screen shot below.

This event handler does two things:

  1. It uses a standard QueryCancel action to ask the user if he/she really wants to cancel;
  2. If this action returns Yes, it closes the dialog box with the IDCANCEL return code. (If QueryCancel returns No, the event handler action sequence is terminated before it reaches the EndDialog action.)

This logic is present for each dialog box with a Cancel button; to restore it in case you accidentally deleted it, just create a new CancelBtn:OnClicked event handler (right-click on the Cancel button, then choose New Event Handler... and follow the prompts) and add the two actions shown above.

Please note that the EndDialog action in each event handler must close the current dialog (OptionsDlg in the screen shot above).

The role of the UIAllowCancel variable

There is also a variable called UIAllowCancel defined on the Variables project page. This variable is used to determine whether or not cancellation of the installation is allowed once is has started.

By default, only the predefined ProgressDlg dialog box uses this variable. In that dialog box, UIAllowCancel is used to enable or disable the Cancel button using the push button control's Condition field; see the screen shot below.

Tip: You can use a similar method to selectively enable or disable other dialog boxes or controls.