Blog
All Blog Posts | Next Post | Previous Post
TMS Scripter 8: A Sharper, More Modern Scripting Engine for Delphi
Monday, June 8, 2026
If you've opened a Delphi visual designer on a 4K laptop or a high-resolution external monitor, you know the feeling: blurry icons, toolbar buttons that are too small to read, controls that land in the wrong place when you drop them on a form. Embedding a scripting IDE into your own application means inheriting all of those problems and exposing them to your end users.
TMS Scripter is a scripting engine for Delphi applications. It lets you add a full Pascal or Basic scripting language to your software, complete with an embeddable IDE: a code editor with syntax highlighting and code completion, a visual form designer, an object inspector, and a debugger. Because that IDE runs inside your application, the way it renders on modern displays is the way your users experience it.
TMS Scripter 8.0 is, above all, about making that experience crisp. This release brings full High DPI support throughout the Scripter IDE and the visual scripter components, alongside a new platform target, a reorganized documentation set, and a more modern codebase. Let's walk through what changed.
Sharp on High DPI displays
High DPI support is the headline of this release. On a standard 96-DPI monitor everything looked fine; the trouble started at 150%, 200%, and beyond exactly the scaling factors most modern laptops and 4K screens use by default. Version 8.0 addresses this across the board.
Modern, scalable icons. Every icon in the Scripter IDE the toolbar, the menus, and the component palette has been redrawn as a modern, High DPI-aware set. The object inspector's own glyphs (expand/collapse, the drop-down and dialog buttons, the spin buttons) were updated too, so they render correctly instead of as tiny smudges on a scaled display.
A form designer that behaves at any scale. The visual designer received the bulk of the fixes:
- Controls now drop where you put them. Previously, inserting a control by clicking or dragging on the form designer placed it at roughly twice the intended position and size on a scaled monitor. That double-scaling bug is gone what you draw is what you get.
- The grid and snap-to-grid respect DPI. Grid spacing, grab-handle size, and the arrow-key move/resize step are now treated as logical (96-DPI) values and scaled to the physical display. The grid stays visually consistent at any scaling factor, and the grid dots remain visible on High DPI screens.
- Grab handles resize correctly when you move a form between monitors with different DPI settings.
- Non-visual components and the component palette render at the right size. Both now load the High DPI (32px) icon variants when available, with a clean fallback to the standard icons.
The little things, too. The IDE splitter now starts at a sensible position on High DPI monitors, several dialogs that weren't being centered on screen now are, and the splitter-drag cursor shows up in the correct spot even when the host application is marked DPI-unaware while running on a High DPI monitor.

A new platform: WinArm64EC
TMS Scripter 8.0 adds support for the WinArm64EC platform introduced in Delphi 13.1. ARM64EC ("Emulation Compatible") is Microsoft's ABI for building native ARM64 apps on Windows that can interoperate with existing x64 code in the same process. If you're targeting Windows on ARM, you can now ship scripting capabilities there too.
Documentation, reorganized around how you actually use Scripter
The user guide has been rewritten and split by audience into three clear chapters:
- Working with Scripter running, executing, and debugging scripts.
- Extending Scripter integrating the engine with your host application: registering classes, methods, properties, functions, and libraries. This is now presented RTTI-first, matching the recommended modern approach.
- Writing Scripts the supported Pascal and Basic languages, plus declaring forms and classes from within a script.
The content is cross-linked to the API Reference, outdated version-specific notes have been removed, and the modern TatScripter / TIDEScripter components and the RTTI-based registration approach are presented as the default throughout. If you've been learning Scripter from older docs, this is a good moment to revisit them.
A more modern codebase under the hood
To move faster and write cleaner code, TMS Scripter 8.0 drops support for Delphi 7, 2009, 2010, and XE the minimum is now Delphi XE2. This unlocks generics, anonymous methods, and the modern System.Rtti unit, all of which were impossible to rely on while maintaining compatibility with a 2002-era compiler.
If you're still on one of those versions, you're not stuck: version 7.36 (the last release to support them) remains available for download via TMS Smart Setup, which automatically detects your Delphi version and installs the last compatible release.
We covered the reasoning, the trade-offs, and what it means for the codebase in a dedicated post Dropping Delphi 7 support in TMS Scripter if you'd like the full story.
Developer-facing improvements
A few changes target you, the developer integrating Scripter into your application.
Generic array parameters in RTTI registration. When you register a class with DefineClassByRTTI, methods that take a generic array parameter for example TArray<string> are now handled correctly. Previously such methods needed manual workarounds; now they just work.
type
TReportService = class
public
// A method that takes a generic array parameter
procedure Generate(const Sections: TArray<string>);
end;
procedure TReportService.Generate(const Sections: TArray<string>);
var
I: Integer;
begin
for I := Low(Sections) to High(Sections) do
WriteLn('Building section: ' + Sections[I]);
end;
// In your host application, register the class via RTTI:
Scripter.DefineClassByRTTI(TReportService);
Once registered, the script can call the method naturally, passing an array straight through:
var
Service: TReportService;
Sections: array[0..2];
begin
Sections[0] := 'Summary';
Sections[1] := 'Details';
Sections[2] := 'Appendix';
Service := TReportService.Create;
try
Service.Generate(Sections);
finally
Service.Free;
end;
end;
Import tool supports Delphi 12 and 13. You can now import library units from the latest two IDE versions, so wrapping your own units and third-party libraries for use in scripts stays in step with your Delphi installation.
More bookmarks in the editor. The code editor's TIDEMemo.BookMarkMax property lets you raise the bookmark limit beyond the previous fixed maximum (the default remains 10).
Alongside these, the release fixes a long-standing annoyance: cursor and selection position in the code editor are now correctly preserved when switching between files or saving.
Getting it
TMS Scripter 8.0 is available now on the product page. If you're already a customer, install it via TMS Smart Setup; the modern, High DPI-aware IDE is what your users will see the moment you rebuild.
For anyone who adds scripting to their Delphi applications, 8.0 removes a class of papercuts that mattered most on exactly the hardware your users run today and lays a more modern foundation for what comes next.
- TMS Scripter product page
- TMS Scripter documentation
- What's new in 8.0
- Dropping Delphi 7 support the reasoning
Wagner Landgraf
This blog post has not received any comments yet.
All Blog Posts | Next Post | Previous Post