| **Navigation:**  Window and Report Control Properties >====== Entry Box Control Properties ====== | [[ellipse control properties.htm|{{btn_prev_n.gif|Previous page}}]][[coming future.htm|{{btn_home_n.gif|Return to chapter overview}}]][[group control properties.htm|{{btn_next_n.gif|Next page}}]] | | || An [[entry declare a data entry control .htm|entry]] box lets you process data input from the user. The data entry control is a specialized form of Windows edit box. It can help you automatically validate data as the user enters it in a dialog box. {{notebox.jpg|NoteBox.jpg}} The Property View presents you with two ways to viewing a control's properties. At the top of the Property View, press the categorized button {{categorized.jpg|categorized.jpg}} to view a control's properties by category (the deafult). Or press the alphabetical button {{alphabetical.jpg|alphabetical.jpg}} to view a control's properties in alphabetical order. This help documents displays the properties in the categorical view. **Color** Enter a valid color equate in the TextColor, BackGround, SelForeGround, or SelBackground fill fields, or press the ellipsis (...) button to select a color from the **Color** dialog. The **Window Designer** adds the [[color set color .htm|COLOR]] attribute to your control declaration. See ..\LIBSRC\EQUATES.CLW for a list of valid color equates. See //Windows Design Issues// in the //User's Guide// for a discussion on using color to enhance your application. **Design** | **Locked** | "Freezes" the control so that subsequent data dictionary changes are not applied. You can override the #Freeze attribute for all controls or for individual controls. See **[[application options dialog.htm|Application Options]]**. | | **Tab Index** | Determines the index in the TAB order that this control will follow. The first tab in the order is index zero (0).To change the **TabIndex** property //immediately// while in the Designer, use the **Show tab order** interface (i.e. on the right-click menu).If you set the **TabIndex** property using the property page, the z-order is not updated until you save and exit the Window Designer. | **Extra** | **DropID** | To specify the type of Drag operations this control will accept, type up to 16 //signatures//, separated by commas. The **Window Designer** adds the **[[dropid set drag and drop target signatures .htm|DROPID]]** attribute to the control, which indicates the control is a valid target for the drag and drop operations identified by the signatures. | | **EntryMode** | Choose either **[[ins ovr set typing mode .htm|Insert]]**[[ins ovr set typing mode .htm|, ]]**[[ins ovr set typing mode .htm|Overwrite]] **or **Default**. The **Entry Mode **applies only for windows with the MASK attribute set. Default accepts input according to the current system settings. | | **TextCase** | Specify case attributes for the entry field. The entry box can automatically convert characters from one case to another. **[[cap upr set case .htm|Uppercase]] **automatically converts to all caps. **[[cap upr set case .htm|Capitalize]]** converts to proper case. **Default **(no attribute) accepts input in the case the user types it. | **General** | **Justification** | Specify [[left right center decimal set justification .htm|left, center, right, decimal,]] or default justification. Default justification matches that specified in the data dictionary, if applicable. If you use decimal justification, you set the Offset to allow display of digits to the right of the decimal point. | | **Offset** | Specify an indentation value for the text, in dialog units. The indention is in the opposite direction from the justification. | | **Layout** | Indicates the orientation of the control. | //Left to Right// maintains the original layout specified in the Window Designer. //Right to Left// essentially "flips" the controls' display as a mirror image of the layout specified in the Window Designer. Default field navigation moves from right to left. The setting in the Application Frame will cascade its setting to all child windows and controls that have the //default// setting active. **Picture** The Picture field takes a display [[picture tokens.htm|picture token]] that specifies input format. You may press the ellipsis (...) button next to the field to pick a display picture from the **[[edit picture string dialog.htm|Edit Picture String]]** dialog. You may check the user entry against the picture at two points: as the user types the data in, or when the user closes the dialog box. Checking the data as the user types it incurs a slight performance penalty. To do so, check the **Entry Patterns **box in the **Window Properties **dialog for the window in which the entry box resides. This turns the [[mask set pattern editing data entry .htm|MASK]] attribute on for //all //controls in the window. If the MASK attribute is off, entry checking takes place when the user moves the focus to another control (for example, by TABBING to another field). If the user types in data in a format different from the picture, the program will attempt to determine the format, then convert it to match the picture (if no MASK was specified). For example, if the user types 'January 1, 1995' and the picture is @D1, the program formats the input to "1/1/95. If the program cannot determine the entry format, it will //not //update the USE variable. The user will receive an audible prompt (beep), and the focus will return to the entry control, ready for additional input. | **Text****Font** | Calls the **[[select font dialog.htm|Select Font]]** dialog which lets you select the font (typeface), size, style (such as bold or italic), color, and font effects (underline and strikeout) for the selected control or window. As you choose options, the dialog box displays a sample of the selected font. | | **Use** | This defines the [[use set field equate label or control update variable .htm|USE]] attribute for the control. Place a variable or field equate label in the **Use **field. You may specify a variable which receives the value that the user types. Or, a field equate label which references the entry box in program statements. | **Help** | **Alert** | Press the ellipsis to open a dialog that lets you add the [[alrt set window hot keys .htm|ALRT]] attribute to a window or control. When the attribute is set, the window generates an EVENT:AlertKey if the user presses the key(s) you specify in this dialog, while the window has the focus. | | **Cursor** | The //Cursor// field (the [[cursor set mouse cursor type .htm|CURSOR]] attribute) lets you specify an alternate shape for the cursor when the user passes the cursor over the control. The drop-down list provides standard cursor choices such as I-Beam and Crosshair. To select an external cursor file (whose extension must be .CUR), choose **Select File **from the drop-down list, then pick the file using the standard file dialog. | | **Help ID** | The **Help ID **field (the [[hlp set on line help identifier .htm|HLP]] attribute) takes a string constant specifying the key for accessing a specific topic in the Help document. This may be either a Help keyword or a context string. | A Help keyword is a word or phrase indexed so that the user may search for it in the //Help //**Search **dialog. When you fill in the HLP attribute for a button, if the entry box has focus, when the user presses F1, the help file opens to the referenced topic. If more than one topic matches a keyword, the search dialog appears. When referencing a context string in the **Help ID****// //**field, you must identify it with a leading tilde (~). | **Key** | Press the desired key or key combination (for example, CTRL+H). The keys you pressed will appear in the **Key** field, and will be supplied as parameters to the KEY or ALRT attribute for this control. The ESC, ENTER, and TAB keys //cannot// be specified by pressing them. For these keys, press the ellipsis (...) button and type "esc," "enter," or "tab." | | **Message** | The **Message** field (the [[msg set status bar message .htm|MSG]] attribute) lets you specify text to display in the first zone of the status bar when the control has focus. | | **Tip** | The **[[tip set balloon help text .htm|TIP]]** attribute on a control specifies the text to display in a "balloon help" box when the mouse cursor pauses over the control. Although there is no specific limit on the number of characters, the //string// should not be longer than can be displayed on the screen. | **Mode** | **Disable** | Disables or 'grays-out' the control when your program initially displays it. The **Window Designer** places the [[disable set control dimmed at open .htm|DISABLE]] attribute on the control. Use the [[enable re activate dimmed control .htm|ENABLE]] statement to allow the user access to the control. | | **Hide** | Makes the control invisible at the time Windows would initially display it. Windows actually creates the control--it just doesn't display it on screen. The **Window Designer** places the [[hide set control hidden .htm|HIDE]] attribute on the control. Use the [[unhide show hidden control .htm|UNHIDE]] statement to display the control. | | **Scroll** | Specifies whether the control should move with the window when the user scrolls the window. By default (False) the control does not move with the window. Set the **Scroll **property to False to create a control that stays fixed when the user scrolls the window. The **Window Designer** places the [[scroll set scrolling control .htm|SCROLL]] attribute on the control when checked. | | **Skip** | Instructs the **Window Designer** to omit the control from the Tab Order. When the user TABS from field to field in the dialog box, Windows will not give the control focus. This is useful for seldom-used data fields. The **Window Designer** will place the [[skip set tab key skip or conditional print control .htm|SKIP]] attribute on the control. | | **Transparent** | Specify whether you wish the control background to be **Transparent**. This instructs Windows to suppress the rectangular region around the text--the background. Normally, Windows will paint this the same uniform color as the window below the control. This adds the [[trn set transparent control .htm|TRN]] attribute. | **Options** Set the Entry properties. There are five properties you may set independently. | **Flat** | Specifies a "flat" appearance (the entry control is on the same level as the window, and not recessed). | | **Immediate** | The [[imm set immediate event notification .htm|IMM]] attribute specifies immediate event generation whenever the user presses any key. **See Also:** [[how to complete an entry field when the last character is entered.htm|How to complete an entry field when the last character is entered]]. | | **Password** | The [[password set data non display .htm|PASSWORD]] attribute specifies non-display of data entered in this control. When the user types in data, asterisks are displayed for each character entered. | | **Read Only** | The [[readonly set display only .htm|READONLY]] attribute prevents data entry in this control. Use this to declare display-only data. | | **Required** | The [[req set required entry .htm|REQ]] attribute specifies that the control may not be left blank or zero. | **Position** Lets you set the location and size of the control. The **Position **category lets you specify the [[at set position and size .htm|AT]] attribute. Filling in the attribute manually is optional--you may set the position and size visually by dragging with the mouse in the **Window Designer**. To set the location of the control's** Top Left Corner**, set an **X** (horizontal) and **Y** (vertical) coordinate in [[what is a dialog unit.htm|Dialog units]]. The coordinate is relative to the top left corner of the structure containing it, that is, the window or the report band. To set the control's size, choose from the following options for **Width** and **Height**. | **Default** | The Clarion runtime library determines the size of the control based on the applicable font and picture token. | | **Full** | The control is the full height or width of the window or report. | | **Fixed** | Lets you set a precise width or height in [[what is a dialog unit.htm|Dialog units]] on a window, or in thousandths of inch, points, or millimeters on a report. | **Actions** The **Actions** tab prompts are all from the templates, in other words, the prompts you see here vary with the template used to create the control. Following are the standard action prompts for all entry controls. The standard **Actions** prompts are designed to provide data validation support for your entry controls. The tab is divided into two parallel sections. The **When the Control is Selected** section provides validation when the control //receives// focus (when the user TABS onto, or mouse CLICKS the control). The **When the Control is Accepted** section provides data validation when the control //loses// focus after data have been entered in it. The control loses focus when the user TABS off the control, mouse CLICKS to a different control or window, or closes the window without canceling. The two sections are not mutually exclusive, so you can provide validation at both points. **Lookup Key** Type a key label from the //lookup// file, or press the ellipsis (...) button to select a key from the **Select Key** dialog. A lookup file is a file which contains all the valid values for the entry field, which are directly accessible through a unique key. For example, a file containing all of the customer numbers for your application could be a lookup file. The key label could be "CUS:KeyCustNumber". {{tipbox.jpg|TipBox.jpg}} This lookup validation is easier to implement by using a single component unique key. **Lookup Field** Type the label of a component field of the lookup key, or press the ellipsis (...) button to select a field from the **Select component from key** dialog. This is the field within the key that contains the same value being validated. Ideally, this field is the only component of a unique key. **Lookup Procedure** Type a procedure name, or choose an existing procedure from the drop down list. This is the procedure that is called when the user enters an invalid value, and the lookup specified above //fails//. The usual purpose of this procedure is to allow the user to choose a valid value from the lookup file. Select procedures (or Browse procedures) generated by Clarion's Wizards) are appropriate for this purpose. Alternatively, you may hand-code a procedure. **Procedure Parameters** Allows you to specify parameter names (an optional list of variables separated by commas) for your update procedure, which you can pass to it from the calling browse procedure. You must specify the functionality for the parameters in embedded source code. Example: (LOC:HideID,GLO:AccessLevel) **Advanced** Calls the** Embedded Source** dialog. The only embed point shown is after the code generated to call the lookup procedure specified above. For more embed points, and further customization, press the **Embeds **button. Perform lookup during non-stop select Checking this box tells Clarion to perform the validation when the //window// is accepted, even if the //entry control// never received focus. From a practical viewpoint, checking this box prevents the user from entering blanks by virtue of having pressed the window's "**OK** button" without ever TABBING or CLICKING onto the entry field. This option is only applicable to the **When the Control is Accepted** section. Force Window Refresh when Accepted Checking this box ensures that everything (including formulas and other entry fields) on the window is current and up-to-date when the user TABS off this entry control. **More Field Assignments** Optionally press the **More Field Assignments **button to specify additional value assignments from the selected lookup item's record. **Embeds** Accesses the **[[gen72.htm|Embedded Source]]** dialog for points surrounding the event handling for this control only.