Sign in Join
FPDoc Onlineexperiment

TOpenDialog.DoExecute function

Member of TOpenDialogprotectedIn unit Dialogs

Performs actions needed to display the dialog and capture its result.

Declaration

pascal
function DoExecute: Boolean; override

Function result

True when the selected file(s) are valid and the method is successfully completed.

Description

DoExecute is an overridden Boolean function in TOpenDialog. It ensures that the value ofExtensionDifferent is excluded from the Options property prior to executing the dialog. It calls the inherited method (in TCommonDialog) to display the dialog form and to get the UserChoice used to complete execution of the dialog.

DoExecute extends the execution loop for the dialog to use the Options enabled for the dialog, including:

ofNoResolveLinks
Calls ResolveLinks to follow symbolic links when ofNoResolveLinks has been omitted.
ofNoChangeDir
Updates the InitialDir property when a path in FileName or Files has been changed and ofNoChangeDir has been omitted.

The return value is True when all of the steps are successfully completed. The return value is False if any mechanism other than the OK button was used to close the dialog.

If execution of the inherited method was successfully completed, the CheckAllFiles method is called to validate the values in the FileName and Files properties.

The return value is set to True if the selected FileName or Files is/are valid for the dialog. Options is updated to exclude the value ofExtensionDifferent when Files contains more than 1 (one) file entry. This avoids the erratic behavior displayed when multiple file selections are enabled and used on the dialog, and mimics the behavior used in Delphi 7.

If a single file is selected on the dialog, and has an extension which does not match the assigned value in DefaultExt, the value ofExtensionDifferent is included in Options to indicate the condition.

DoExecute is called from the Execute method in the TCommonDialog ancestor, and occurs immediately before the Close method is called.

See also

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.