Knowledge Base Alert August, 2017

TMS TAdvStringGrid:

New property FilterType

The grid has a new property FilterType that can be set to ftHide (default setting) or ftSuppress. With the default setting, during a filter operation the filtered rows are effectively hidden/removed from the grid, affecting the row indexes of all rows.

When the FilterType is set to ftSuppress, the filtered rows are just made invisible and are not affecting the row indexes. So, if you want to keep accessing grid cells with row indexes independent of filtering, the new option FilterType = ftSuppress can be used.

TMS Parameter Controls:

Using a custom inplace editor for a parameter control

By specifying the class CUSTOM as editor for a parameter in any of the TMS parameter controls, a custom inplace editor can be used. An example parameter declaration is:

This is a custom editor for a <a href="PARAM1" class="CUSTOM">VAL</a> parameter

When this class is specified, when the parameter is clicked, the event OnParamCustomEdit is triggered with following event parameters:

procedure TForm1.ParamListBox1ParamCustomEdit(Sender: TObject; idx: Integer; href, value, props: string; EditRect: TRect);

It returns in the parameter href identifier, its value and optional properties (that can be set as attribute of the parameter) and most importantly the screen rectangle where the custom editor should be displayed.

For this example, a TCheckListEdit is used as inplace editor and following code make the inplace editor visible at the correct position:

procedure TForm1.ParamListBox1ParamCustomEdit(Sender: TObject; idx: Integer;
  href, value, props: string; EditRect: TRect);
  pt: TPoint;
  pt := Point(EditRect.Left, EditRect.Top);
  pt := ScreenToClient(pt);
  CheckListEdit1.SetBounds(pt.X, pt.Y, Max(100,EditRect.Width), EditRect.Height);
  CheckListEdit1.Visible := true;
  CheckListEdit1.Text := Value;
  edithref := href;
A reference to the href of the parameter being edited is kept as private variable in the form.

In this case, we stop the inplace editing when the dropdown of the TCheckListEdit closes up, so in the OnClose event of TCheckListEdit, following code is added:

procedure TForm1.CheckListEdit1Close(Sender: TObject);
  ParamListBox1.Parameter[edithref] := CheckListEdit1.Text;
  CheckListEdit1.Visible := false;
Thus, the edited parameter value is updated and the custom editor is hidden. With this technique, any type of custom inplace editor can be used to edit parameters in any of the TMS parameter controls. The sample app can be downloaded here.

TMS TCalcEdit:

Using variables in TCalcEdit

TCalcEdit has 100 built-in variables, named V0 ... V99. To set the values of the variables, CalcEdit.Variable[variableindex]: double can be used.

This example shows how the sum of two variables can be calculated with TCalcEdit:

  CalcEdit1.Variable[0]:= 12;
  CalcEdit1.Variable[1]:= 15;
  CalcEdit1.Text := 'V0+V1';

This calculates to the expected sum 27.

TMS FlexCel:

Sign your PDF files

In this article you can read more about how you can digitally sign a PDF document and how you can keep your signing secure.

TMS WebGMaps:

Creating moving markers on WebGMaps

After a marker has been added with the method WebGMaps.Markers.Add(), it can be moved at a later time on the map by simply changing its longitude and/or latitude properties.


Button1 adds a marker on the center of the map.

procedure TForm3.Button1Click(Sender: TObject);

From button2, you can make the marker move in latitude direction with following code:

procedure TForm3.Button2Click(Sender: TObject);
  webgmaps1.Markers[0].Latitude :=  webgmaps1.Markers[0].Latitude +0.01;


Control how spaces are exported to HTML from TTMSFMXRichEditor

With the non-visual component TTMSFMXRichEditorMiniHTMLIO, it is possible to export the contents of TTMSFMXRichEditor to HTML. The property TTMSFMXRichEditorMiniHTMLIO.SpaceAsNbSp: boolean exists to control how spaces are exported to HTML. When this is true, all spaces in the richeditor are exported as '&nbsp;' sequences avoiding possible wordbreaks by the HTML renderer, otherwise the space is just exported as space character and can thus cause line breaks.

TMS FNC Ribbon:

Changing the ribbon theme color with one property

TMSFNCRibbon1.Theme := rbtLightBlue;

TMSFNCRibbon1.Theme := rbtOrange;

TMSFNCRibbon1.Theme := rbtDarkGray;

TMS FNC UI Pack Video series part 3:


A new video has been published about our TMS FNC Grid.

The TMS FNC Grid offers a fully cross-platform, high-performing, versatile and feature packed grid for VCL, FMX and LCL.

Watch the video here.

As always, we thank all users for the numerous inputs, feedback, comments and suggestions. This is an invaluable help to steer our developments here at TMS software. We continue to look forward to all your further communications to direct our team to provide you better tools and components for your needs.

Kind regards,
TMS software team
Support, FAQ & Manuals:

Follow latest developments at

NOTICE: If you wish to unsubscribe from the TMS software Newsletter, please click here.