CodeMine Framework
Custom Controls and Gadgets
Custom 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:
  • Enhanced data binding, giving the developer programmatic control over the movement of data between a control and is bound data source.
  • Context sensitive help support - using the native help system, or a custom multi-lingual help system.
  • Customizable right-click context menus.
  • Automatic data encryption - just set the cEncryptionKey property, and data is automatically decrypted and re-encrypted as it is moved into and out of the control.
  • Dynamic repositioning or resizing of the control when the form is resized.
  • Value Memory - controls can remember the last value that was entered into them.

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
The Adjustable Listbox control is similar to a standard listbox, with the addition of column headings, as shown below. The user can drag the line between column headings to interactively resize the columns. An optional column memory will restore the column widths to their last set positions each time the form is run. The user can also click on a column header to perform an action, such as sorting the rows based on the contents of that column.

Adjustable Listbox Control

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.

Freeform Date Control example

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.

Calculator Style Numeric Entry Control example

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.

QuickFill text control example

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.

Check List Control

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
The Personal Name Parsing control allows you to enter and display personal names in a single field, while storing the individual name components in your data tables. Entering names in a single field makes applications more user-friendly, and also takes less screen space. Storing names as individual components gives you more control over searching and sorting your data. The Name Parsing Control gives you the benefits of both approaches, without the drawbacks of either. The Relational Order Entry form in the sample application contains an example of this control.

File Path Control
This control allows the user to enter file name paths. It also contains a Browse button, to allow selection from a list of existing files.

Mover Listbox
This control implements the standard Mover Listbox combination, where two listboxes are displayed, and the user can drag items from one list to the other. The control supports item movement via selection buttons or by using drag-and-drop. It can be placed on any form. The User Account editor form in the sample application contains an example of this control in use.

Progress Bar
The Progress Bar control displays a colored bar against a white background to indicate a percentage of completion. It also displays a numeric representation of the percentage completed. This control can be placed directly on a form, but is most commonly used in a separate dialog to display progress information.

Progress Bar Control

Status Bar
The custom Status Bar control lets you display a customizable status bar along the bottom of the main VFP window.

Custom Status Bar (non-ActiveX)

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.

Read More About Features

Home • Download Sample Application • Order Information • Order Now