Custom Controls and Gadgets |
![]() |
The CodeMine Framework includes subclasses of the VFP base
control classes that extend the functionality available to the developer. The enhanced
control features include:
In addition to the foundation controls, the CodeMine Framework also includes a rich set of special purpose Gadget controls. Some of the more popular ones are shown below. Adjustable Listbox |

| Freeform Date Control The freeform date entry control lets you enter and display dates in any format, and also includes enhanced year 2000 support. The month names used to parse and display character date formats are derived from the current language definition set in the Message Manager. Additional Y2K century defaulting options include Future, Past, Current, or the standard Rollover. The sample application contains the form shown below so you can see how the different defaulting algorithms behave. |

| Calculator Style Numeric Control The Calculator Style Numeric control lets you enter numeric or currency values in right-to-left order, just like a calculator or cash register normally would. With this control, the value displayed in the control always accurately reflects the amount entered so far - you don't have to wait until you leave the field to see the value displayed correctly as with a standard textbox. There are two options for handling decimal points - explicit or implicit. In Explicit Decimal mode, data entry begins to the left of the decimal point, and remains there until you explicitly type the decimal point to move past it. In Implicit Decimal mode (also called ATM mode), data entry starts at the far right, and digits move leftward past the decimal point as you type. The sample application contains the form shown below so you can see how the different entry modes behave. |

| Quick-Fill Text Control The txtQuickFill control lets you quickly enter a value from a pre-determined list of possible values. As you type in the value, the text you enter is compared against a list of possible values, and the remaining characters of the first match are filled in automatically. As you type, the matching value may change as the number of possible matches is narrowed down. You can enter a "?" at any time to see a popup containing a list of possible completions for what you have entered so far. The list of possible values may be specified as a cursor, or as a comma separated string value. For relational data, the txtQuickFill control can be used to select a child record by a user-friendly description, while storing the relational key ID of the selected item to the bound data source. For example, in a typical order form the user would select an item from the inventory file by entering the description, but the inventory ID (relational key) of the record would actually be stored in each order item record. |

| Check-List Control The CheckList control provides a scrollable list of checkboxes. It can be used wherever you need to accept or display a variable number of on/off values. An example is shown below. |

| Credit Card Entry Control The Credit Card Number control accepts and formats credit card numbers. The number is checked for the correct number of digits, and then a hash algorithm is performed on it to ensure that it is a valid card number. If all validations pass, then standardized formatting is applied to the number and it is accepted. The Relational Order Entry form in the sample application contains an example of this control. Name Parsing Control File Path Control Mover Listbox Progress Bar
Status Bar
By default, the custom Status Bar contains an area for displaying permanent or temporary messages, and also includes an integrated progress bar. It has a button to open your application's About dialog, an area to display the current logged on username, the date & time, and the current state of Numlock, Capslock and Insert mode. It can be subclassed and customized any way you like. |