| **Navigation:**  Application Generator > Procedure Properties >====== Procedure Properties ============ Window, Browse, Form, Viewer, Menu, ViewOnly ====== | [[tplprocsplash.htm|{{btn_prev_n.gif|Previous page}}]][[coming future.htm|{{btn_home_n.gif|Return to chapter overview}}]][[tplprocreport.htm|{{btn_next_n.gif|Next page}}]] | | || This procedure template is the basis for Window, Browse, Form, Viewer, or Menu procedures. Each of these can add other control or extension templates which add buttons or prompts to this window. See the [[procedurepropertieswindow.htm#tplprocbrowse|links]] at the botton of this topic for information on these template prompts. | **Procedure Name** | The **Procedure Name** is displayed here. Press the ellipsis button to change the name if desired. You will be prompted for a New Procedure Name, and the ability to Accept or Discard your changes. | | **Template** | The base template type used by this procedure is displayed here. You can change the template type by pressing the ellipsis button to the right. The //Select Procedure Type// dialog is displayed for a new selection if needed. | | **Description** | A short text description for the procedure, which appears next to the procedure name in the **Application Tree **dialog.Press the ellipsis ( ... )** **button to edit a longer (up to 1000 characters) description. | | **Category** | A category is used to help you group procedures together when the **Category** Tree Mode is active. | | **Module Name** | The source code file to hold the code for the procedure. Select from the dropdown list. By default, the Application Generator names modules by taking the first five characters of the .APP file name, then adding a three digit number for each module. | | **Prototype** | Allows you to optionally type a custom procedure [[prototyping and parameter passing in the application generator.htm|prototype ]]which the Application Generator places in the MAP section. | | **Parameters** | Allows you to optionally enter any parameter names (a list of variables separated by a comma) | | **Declare Globally** | Check this box to generate the procedure's prototype into the PROGRAM's MAP, rather than the MODULE's MAP. This makes the procedure callable from any other procedure, but it also forces a recompile of all program modules whenever you change the prototype. | | **Export Procedure** | Declares the procedure in the export file, enabling it to be called by another application. Note: This checkbox is only available when the target file specified in Application Properties is a Dynamic Link Library (.DLL). | | **Actions** | If any control templates were pre-defined in the current procedure template, or were in a window or report by you, this button accesses the **Actions **dialog for the control templates.Control templates provide "off the rack" controls, such as list boxes, //and //the code to maintain them. This allows you to start with a "bare" procedure template, such as the generic window, and add controls to create your own browse or form windows. | | **Window** | Calls the **Window Designer**, to visually design the window. Press the ellipsis button to access the **Window Editor**. | | **Report** | Calls the **Report Designer**, to visually design the window. Press the ellipsis button to access the **Report Editor**. | | | In the **Actions** dialog: | | **Parameters** | Lets you specify parameter names (an optional list of variables separated by commas, with the entire list surrounded by parentheses) for your procedure, which you can pass to it from a calling procedure. You must specify the functionality for the parameters in embedded source code. **See Also:** [[procedure calls.htm|PROCEDURE Calls]] . | | **Return Value** | For functions, lets you specify the variable receiving the return value. | | **Window Behavior** | Press this button to control the behavior of the Window. See [[tplprocwindow general.htm|Window Behavior]] | | **ListBox Styles** | Press this button to maintain any List Box Styles used by this procedure. See [[tpllistboxstyles.htm|List Box Styles]]. | | **BIND Fields and Procedures** | Press this button to maintain all BINDed variables and procedures used in this procedure. See [[tplbindfieldsandprocedures.htm|BIND Fields and Procedures]]. | | | | **[[tplprocwindow.htm#procedure tabs|Procedure Properties Tabs]]** The **Browse** Template adds several control templates including: Browse Box control template Browse Update buttons control template Browse Select button control template Close Button control template The **Form** Template adds: [[tplcontrolsavebutton.htm|Save Button control template]]. [[tplextensionrecordvalidation.htm|Record Validation extension template]]. The **Viewer** Template adds: [[asciiviewcontrol.htm|ASCII View control template]] __ASCII Search Button__ASCII_Search_Button_control_template __ASCIIPrint Button__ASCII_Print_Button_control_template __CloseButton__Close_Button_control_template The **ViewOnlyForm** Template adds: __CloseButton__Close_Button_control_template [[viewformactions.htm|ViewFormActions]] The **Menu** Template is nearly equal to the default Window template, but adds a default SDI window with a Menu structure defined.