Dear Sirs,

I wish to thank you for an excellent set of components – I find I am using a lot of the components from the TMS component pack in my projects.

I have been doing work for a firm on a project to calculate engineering specifications from various numerical inputs – mostly floating point numbers, but a few integer values. These input fields are overlayed over a schematic flow-chart, mostly composed of solid colours.

We needed label and edit sets to display these values, and to allow several of them to be edited. Because of the background, they needed to be transparent, but to show if they could be edited.

I have finally created a new component to do this, but on seeing how this component is based on TMS components, and on how well this component works, and in my finding several limitations and making a list of possible enhancements I believe that you may be interested in re-designing it and adding it to your list of components.

This new component is based on the TAdvGroupBox and contains a TLabel and a TAdvEdit. The label is set to the left, and the edit to the right.

The border colour and border style on the GroupBox are used to show if it is in read-only mode – single border for read-only, and double for edit enabled.

The new and exposed Properties and Events are:

CanEdit: Boolean - set True to allow editing of the value (TAdvEdit ReadOnly)
EditColor: TColor - edit background color
EditFontColor: TColor - edit font color
EditFontSize: Integer - edit font size
FloatValue: Extended - Numerical Value
LabelColor: TColor - label background color
LabelFontColor: TColor - label font color
LabelFontSize: Integer - label font size
Maximum: Extended - maximum value allowed
Minimum: Extended - minimum value allowed
Precision: Integer - decimal precision (expose TAdvEdit Precision)
Suffix: string - suffix for number (expose TAdvEdit Suffix)
Text: string - display text (TLabel Caption)
WarnMsgOverMax: string - warning message for over value
WarnMsgUnderMin: string - warning message for under value

OnChange - fires when value changed by user
OnCLick - switches the TAdvEdit to edit mode

Currently there are a few issues which we are either hard-coding or working around, including Font.Size (component Font.Size) and Integer/Extended values.

I have also found an issue with the TAdvEdit.Precision – if, for example, it is set to 4, the user can not enter 5 or 6 digits, and have the component round them back, showing 4 digits, but supplying full precision via the FloatValue.

If you are interested in this idea and component, I am happy to give you a copy of the source code (just please don’t laugh).

Thanking you in anticipation,

Frank Reynolds

This feature will not be implemented.