Blog

All Blog Posts  |  Next Post  |  Previous Post

TMS VCL UI Pack 13.6: ARM, PDF Forms, and Practical VCL Improvements

Today

TMS Software Delphi  Components tmsvcluipack

TMS VCL UI Pack keeps evolving, release after release, decade after decade. That long-term work shows up where Delphi & C++Builder developers actually notice it: support for new compiler and platform targets, better integration with evolving Windows capabilities, and small but meaningful additions that remove friction from day-to-day UI development.

Highlights in TMS VCL UI Pack 13.6

The most important additions in this release are:

  • Support for the Windows on ARM EC platform
  • PDF form field generation in TAdvPDFLib
  • Color, brush style, and pen style selector support in the parameter controls

Other additions in 13.6 include:

  • BeginUpdate/EndUpdate in TAdvOfficePager for faster bulk page creation
  • AnimationSteps in TAdvOfficePager
  • BookMarkMax in TAdvMemo
  • Code folding for non-programming languages in TAdvMemo
  • ItemAtXY in TAdvSearchList
  • AutoDropDown in TAdvSearchEdit
  • BorderColorFocused in Curvy Controls


Native platform progress: Windows on ARM EC support

TMS VCL UI Pack now leverages the Windows on ARM work introduced in Delphi 13.1. Embarcadero added support for building Windows on Arm applications using Arm64EC, which is Microsoft’s interoperability-friendly ARM application model for migrating existing desktop software. The good news for you: with Delphi 13.1, there isn't anything to do other than adding the Arm64EC target in your project and recompile your app for ARM. 


PDF form field generation with TAdvPDFLib

The second major addition in 13.6 is PDF form field generation.

This extends the PDF library beyond static document output. You can now generate interactive PDFs with fillable fields directly from Delphi code.

For developers, this opens up several practical scenarios:

  • Generating fillable business forms
  • Exporting documents with editable fields
  • Pre-filling part of a document while leaving user input areas open
  • Building PDF-based workflows without relying on external tools

Instead of generating a PDF that only looks right, you can now generate one that is interactive as well.

The new form field generation supports:

  • text edit fields
  • memo fields
  • password fields
  • combo boxes
  • list boxes
  • check boxes
  • grouped radio buttons


Basic workflow

  • Create the PDF document
  • Draw static labels and layout elements through Graphics
  • Add interactive controls through FormFields
  • Save the result

Here is a compact example:

procedure TForm1.BtnCreatePdfClick(Sender: TObject);
var
  PDF: TAdvPDFLib;
begin
  PDF := TAdvPDFLib.Create;
  try
    PDF.Header := '';
    PDF.BeginDocument('customer-form.pdf');
    PDF.NewPage;

    PDF.Graphics.DrawText('Name', PointF(30, 30));
    PDF.FormFields.AddEdit('name_field', RectF(100, 28, 260, 44));

    PDF.Graphics.DrawText('Email', PointF(30, 55));
    PDF.FormFields.AddEdit('email_field', RectF(100, 53, 260, 69));

    PDF.Graphics.DrawText('Comments', PointF(30, 80));
    PDF.FormFields.AddMemo('comments_field', RectF(100, 78, 260, 150));

    PDF.EndDocument(True);
  finally
    PDF.Free;
  end;
end;

Here is a slightly richer example with a combo box and a checkbox:

procedure TForm1.BtnCreateSurveyClick(Sender: TObject);
var
  PDF: TAdvPDFLib;
begin
  PDF := TAdvPDFLib.Create;
  try
    PDF.Header := '';
    PDF.BeginDocument('survey.pdf');
    PDF.NewPage;

    PDF.Graphics.DrawText('Priority', PointF(30, 30));
    PDF.FormFields.AddComboBox(
      'priority_field',
      RectF(100, 28, 180, 44),
      ['High', 'Normal', 'Low']
    );

    PDF.Graphics.DrawText('Subscribe', PointF(30, 60));
    PDF.FormFields.AddCheckBox('subscribe_field', RectF(100, 58, 116, 74), false);

    PDF.EndDocument(True);
  finally
    PDF.Free;
  end;
end;

This results in:

TMS Software Delphi  Components tmsvcluipack

Parameter controls: built-in color, brush, and pen style selectors

The third major addition in 13.6 is the extension of the parameter controls (TParamLabel, TParamListBox, TParamCheckListBox, TParamTreeView) with support for:

  • Color selection
  • Brush style selection
  • Pen style selection

This is especially useful when building compact editors for drawing, reporting, diagrams, styling, or annotation features. The parameter editor that is used at design-time but can also be used at runtime now recognizes the corresponding parameter classes:

  • COLOR
  • BRUSH
  • PEN

That means the selector UI is built into the control rather than being something you have to wire up manually.

TMS Software Delphi  Components tmsvcluipack


Faster bulk updates and animation speed control in TAdvOfficePager

If you create large numbers of pages dynamically, wrapping those operations in BeginUpdate/EndUpdate for TAdvOfficePager avoids repeated intermediate updates and speeds up the process.

procedure TForm1.BuildPages;
var
  I: Integer;
begin
  AdvOfficePager1.BeginUpdate;
  try
    for I := 1 to 100 do
      AdvOfficePager1.AddAdvPage.Caption := 'Page ' + IntToStr(I);
  finally
    AdvOfficePager1.EndUpdate;
  end;
end;

This is exactly the kind of small API addition that helps in real applications with dynamic tabbed interfaces.

The new AnimationSteps property gives direct control over animation speed of the page tab underlining moving from active to new activated tab.

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdvOfficePager1.AnimationSteps := 4;
end;
That lets you tune the feel of page transitions without needing more invasive customization.


TAdvMemo gets more editor control

Two additions were made to TAdvMemo:

  • BookMarkMax is now public
  • Code folding was extended to non-programming languages
BookMarkMax

This gives you explicit control over the number of bookmarks supported in the editor.

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdvMemo1.BookMarkMax := 32;
end;
Simple, but useful in editors where bookmark count needs to be limited or standardized. Now you can have more bookmarks than the original 10 bookmark limit.

Code folding for non-programming languages

TAdvMemo is often used for more than source code editing. Many applications use it for:

  • Configuration files
  • Templates
  • Structured text
  • DSL-like content
  • Markup or script-like data
Extending code folding to non-programming languages makes the control more broadly useful in those scenarios. The key difference between how the TAdvMemoStyler component treats code-folding is that for programming languages versus non-programmaing languages, is that identifiers for code folding in programming languages typically do not contain symbols characters like : , ; , etc.. that delimit code folding section keywords. To create your styler for a non-programming language, just implement an override for the function HasLanguageDelimiters and return false.

TMyCustomStyler = class(TAdvCustomMemoStyler)
protected
  function HasLanguageDelimiters: boolean; override;
end;
Now you can code-fold on a section delimiter "section:idx" for example.

Search controls: a little less friction

Two search-related controls also get focused additions.

ItemAtXY in TAdvSearchList

This simplifies coordinate-based hit testing in the list.

procedure TForm1.AdvSearchList1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Idx: Integer;
begin
  Idx := AdvSearchList1.ItemAtXY(X, Y);
  if Idx >= 0 then
    AdvSearchList1.ItemIndex := Idx;
end;
This is useful for:
  • Custom mouse handling
  • Context menus
  • Drag and drop
  • Item-specific interactions

AutoDropDown in TAdvSearchEdit

This property controls whether the results list opens automatically or not while typing.

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdvSearchEdit1.AutoDropDown := True;
end;
It is a small change, but it gives you more control over how lookup-style UI behave.

Curvy Controls: BorderColorFocused

Curvy Controls now get a BorderColorFocused property. This applies to controls such as: TCurvyEdit, TCurvyComboBox, TCurvyMemo and other related Curvy input controls. It allows to set a separate border color for when the control is in focused state.

It improves focus visibility in a way that feels familiar to users coming from modern UI systems. In particular, it mimics the clearer focus border coloring behavior commonly seen in macOS, where input focus is visually explicit and easy to track.

TMS Software Delphi  Components tmsvcluipack

Final thoughts

TMS VCL UI Pack 13.6 continues the 3 decades tradition of evolving with Delphi & C++Builder, the Windows platform, the software eco-system and most importantly with the needs & feedback of thousands of software developers building real-world applications!
All this with backwards compatibility at the core of every evolution. We highlighted the most noticeable additions in this new release but of course, the full details on new features, improvements and fixes can be found in the version history.  If you are new to TMS VCL UI Pack, you can discover this amazing collection of over 600 components via the fully functional and not time-limited trial version. If you purchased TMS VCL UI Pack years ago and want to be current again with the latest capabilities, there is a discount upgrade offer ready for you from the "My Products" page after login on our website. 



Bruno Fierens




This blog post has not received any comments yet.



Add a new comment

You will receive a confirmation mail with a link to validate your comment, please use a valid email address.
All fields are required.



All Blog Posts  |  Next Post  |  Previous Post