Setting up a DCL dialog box requires the use of several AutoLISP functions that need to be called in a specific order.
Note: DCL support in AutoLISP is limited to Windows only.
The following outlines the typical sequence that needs to be followed to display and use a DCL dialog box:
- Load the DCL file with a load_dialog call.
- Call new_dialog to display a particular dialog box.
Be sure to check the value returned by new_dialog. Calling start_dialog when the new_dialog call has failed can have unpredictable results.
- Initialize the dialog box by setting up tile values, lists, and images. Initialize also when you call action_tile to set up action expressions or callback functions. Other functions typically called at this time are set_tile and mode_tile for general tile values and states, start_list, add_list, and end_list for list boxes, and the dimension functions with start_image, vector_image, fill_image, slide_image, and end_image for images. At this time you can also call client_data_tile to associate application-specific data with the dialog box and its components.
- Call start_dialog to turn control over to the dialog box, so that the user can enter input.
- Process user input from within your actions (callbacks). Process input when you are most likely to use get_tile, get_attr, set_tile, and mode_tile. The user presses an exit button, causing an action to call done_dialog, which causes start_dialog to return a value. At this point, unload the DCL file by calling unload_dialog.
This scheme handles only one dialog box and one DCL file at a time. Applications usually have multiple dialog boxes. The easiest and quickest way to handle these dialog boxes is to save all of them in a single DCL file. The load_dialog call then loads all dialog boxes at once, and you can call new_dialog for any dialog box. If memory is limited, however, you may need to create multiple DCL files and use unload_dialog to remove one set of dialog boxes from memory before you load another set.