What's New
Version 7.36 (Apr-2025)
New: Support for 64-bit IDE.
Improved: Grid step and grab size editors in Designer Options dialog could not be edited directly, only with spin buttons. Ticket #24243
Fixed:
TField.AsLargeInt
property was not being correctly read and written for values higher than the 32-bit range.Fixed:
FreeAndNil
method not working correctly in old Delphi versions (below XE7).
Version 7.35 (Oct-2024)
- New: Support for Windows 64-bit (Modern) platform
Version 7.34 (Sep-2024)
Improved: Updated TScrMemo, including some performance improvements.
Fixed: Generic getter/setter for properties were not working correctly with Int64 values. Ticket #23713.
Fixed: DLL import documentation updated. Ticket #22855.
Fixed: AV when saving file in IDE and "with" statement was syntatically incorrect.
Version 7.33 (Mar-2024)
Fixed: Inline directives for several functions were not being applied due to wrong compiler directive name. Ticket #22456.
Fixed: Range function was not accepting integer parameter. Ticket #13541.
Version 7.32 (Jan-2024)
New: Installation now available via TMS Smart Setup.
Fixed: code completion list not showing if invoked in an empty line. Ticket #22286.
Fixed: Range function was not accepting integer parameter. Ticket #13541.
Version 7.31 (Nov-2023)
- New: Delphi 12 Support.
Version 7.30 (Oct-2023)
- Fixed: Access Violation when using record wrappers in Win64 platform. Ticket #21773.
Version 7.29 (Oct-2023)
Improved: Import tool updated to load settings from Delphi Sydney and Delphi 11.
Fixed:
TatScripter
component not available for platforms other than Win32/Win64. Ticket #21759.
Version 7.28 (Jan-2023)
Improved: When opening projects, it was trying to load settings from local files even when scripts were supposed to be loaded from database. Ticket #19756.
Fixed:
Refactor.AddUsedUnit
was not including the uses clause when the script was not a{$FORM}
or{$CLASS}
script. Ticket #19477.Fixed: Parser failing to recognize some identifiers in Czech language. Ticket #19776.
Fixed: Content of
DefaultProperty
was not being propagated to descendant classes.
Version 7.27 (Mar-2022)
Improved: Syntax highlight memo updated with bug fixes and improvements.
Fixed:
ap_RichEdit
was not compiling in Delphi 11.
Version 7.26 (Feb-2022)
New: TSourceExplorer.UpdateInterval property allows defining the update time for source explorer after source is modified.
Fixed: Workaround Delphi Access Violation issue when using TMS Scripter IDE from a dll.
Fixed: Enter key not working in TIDEMemo when Default property of a button in script form was set to true.
Version 7.25 (Sep-2021)
New: Delphi 11 / Rad Studio 11 support.
New: Scripter IDE autocompletes a
begin..end
block with theend
keyword afterbegin<Enter>
is typed.Fixed: Access Violation when reopening the IDE in Win64 platform.
Fixed: Sporadic "List index out of bounds" error when closing TMS Scripter IDE.
Fixed: AV when setting
IDEEngine.AutoStyler
toFalse
, setting the custom syntax styler directly in theTIDEMemo
component.Fixed: Pascal syntax was accepting
ifproc
as a validif
statements (without space after theif
).
Version 7.24 (Mar-2021)
Improved: Better block highlight (
begin
..end
) in syntax memo.Fixed:
TSourceExplorer
andTatMemoInterface
not working, depending on the order used to set the source code of the memo (regression).
Version 7.23.1 (Mar-2021)
Fixed: Access Violation after closing and reopening a project in Scripter IDE (regression).
Fixed: Access Violation when using code completion and parameter insight in some places of the code (regression).
Version 7.23 (Mar-2021)
Improved: Text selection in code editor is now preserved when switching between project files in Scripter IDE.
Improved:
Round
andTrunc
methods now returnInt64
values.Improved:
Random
function now accepts the parameter for the range.Improved: Updated syntax highlighting memo.
Fixed: Undo problems in multiple files. The undo stack for one file in project was being mixed with other files. See support request.
Fixed: Paste into code editor from clipboard was inserting text in wrong position after switching between project files in Scripter IDE. See support request.
Fixed: Fixed behavior of some Int64 functions from imported libraries, which were only handling Integer (32-bit) values. Functions affected:
TReader.ReadInt64
(ap_Classes),StrToInt64
,StrToInt64Def
,TryStrToInt64
(ap_SysUtils),SetInt64Prop
,GetInt64Prop
(ap_TypInfo),TRttiInt64Type.MinValue
,TRttiInt64Type.MasValue
(ap_Rtti).Fixed:
WideChar
values could not be passed as parameter to scripter functions viaExecuteSubRoutine
.Fixed: Rare Access Violation when filtering components in the component palette and the name of filtered component was not entirely visible.
Version 7.22 (Aug-2020)
- Fixed: Sporadic error with ARM 64 compilers (iOSDevice64 and Android64).
Version 7.21 (Jun-2020)
New: Support for RAD Studio 10.4 Sydney.
Improved: Latest TAdvMemo features applied to TScrMemo/TIDEMemo.
Fixed: Closing a modified filed in IDE without saving would keep using the modified content when running the project.
Version 7.20 (May-2020)
Fixed: Automatic event handler creating in the source code (upon double-clicking object inspector or the component) was creating the procedure signature with wrong parameters for the event.
Fixed: Syntax memo updated to mirror TAdvMemo latest features and fixes. Copy/paste issue (pasting text in wrong position) is one of them.
Version 7.19 (Feb-2020)
Improved: Project group file updated with all TMS Scripter sample projects..
Fixed: Length function returns wrong value for variant arrays.
Fixed: GetInputArgAsString returning error if an uninitialized script variable were passed to the method/procedure.
Fixed: Comments right after a number constant is not allowed but was not raising a compilation error. Now it is. Example: const A = 3.14//comment.
Version 7.18 (Nov-2019)
New: Support for Android 64-bit platform (Delphi 10.3.3 Rio).
Improved: Copy function now accepts two parameters (third paramater, the character count, is optional, just like in Delphi).
Fixed: Error when using form scripts in macOS 64 (function GetInfoFromRoutineName).
Version 7.17 (Jul-2019)
New: macOS 64 support in Delphi Rio 10.3.2.
Improved: Declaring UInt64 literal constants is now supported.
Improved: TatVirtualMachine.GetInputArgAsUInt64 method to retrieve parameters as UInt64.
Fixed: Syntax now accepts statements ending with multiple semi-colon.
Fixed: Argument out of range when running scripter on iOS/Mac OS using Dutch language.
Fixed: Sporadic Access Violation when expanding properties with subproperties (like Font, for example).
Fixed: Syntax error when using method without result values (procedures) with name starting with "Try".
Fixed: const section declared after var section was causing syntax error.
Version 7.16 (Mar-2019)
Improved: Syntax memo updates.
Improved: Object inspector is now fully updated when a property changes. This fixes an issue when a property changes the type of another property (for example, TPersistent with different subproperties).
Version 7.15 (Dec-2018)
New: Support for Delphi/C++Builder 10.3 Rio.
Fixed: Could not change value of "Name" property when using TIDEInspector component in a custom IDE.
Version 7.14 (Oct-2018)
New: TDBGrid context popup menu with option "Add all fields" in scripter IDE. Allows creating columns from the fields of the associated dataset.
Fixed: Access Violation when invoking code completion from uses classes and a few other parts of the code.
Fixed: Passing WideString parameter as reference to dll functions was not properly working.
Fixed: Error when accessing properties/methods of script-based objects that return another script-based object. For example, suppose a script-based class TMyClass that has a property/method returning another object of type TMyClass. Access properties of that second object would cause errors.
MyObject.AnotherMyObject.SomeMethod();
Fixed: Range check error when reading/setting RootKey property of TRegistry objects.
Version 7.13 (Jul-2018)
New: Array declaration automatically initializes variable array. You can now declare variables with type "array[0..10]" and the variable will be automatically initialized as a variant array.
Improved: Length function now works for arrays in addition to strings.
Fixed: AV when accessing indexed default properties registered with RTTI and accessed via variable reference (e.g., LocalVar[Index] := Value;).
Version 7.12 (May-2018)
Improved: Trial and registered installers now offers option to install to Linux platform.
Fixed: Copy/Paste operation in form designer was losing event handlers of pasted child controls.
Version 7.11 (Mar-2018)
- Improved: Compilation is now significantly faster in some situations, especially with big scripts.
Version 7.10 (Nov-2017)
New: Linux support for the core scripter engine.
Improved: Scripter IDE (TIDEDialog) modernized with new icons, modern color theme and flat style.
Improved: Better performance when debugging using component TatScriptDebug.
Fixed: Copy/paste a TListBox with Visible property set to False would cause an Access Violation.
Fixed: Executing TIDEDialog was causing a "property does not exist" error in Delphi 7 (regression).
Version 7.9 (Oct-2017)
- Improved: Code completion now shows types of properties, variables and method/function results, when available.
Improved: Code completion has better retrieval of local variables and parameters.
Fixed: Argument out of range when adding code completion list for identifier "fo".
Fixed: "Cannot focus control" error message when creating new unit in TIDEEngine and form is not yet visible.
Fixed: Rare AV when trying to use code completion in a part of the code that is inside a case statement.
Fixed: DelphiFormEditing demo: double clicking a control would turn object inspector blank.
Fixed: Sporadic Access Violation when using TSourceExplorer component.
Fixed: Rare "out of memory" error when displaying parameter hints (code insight)
Version 7.8 (Jul-2017)
Fixed: "Invalid class type" when passing a TClass parameter to a method that was registered using DefineClassByRTTI.
Fixed: Invalid type cast when reading set properties of classes declared with DefineClassByRTTI.
Fixed: TObject methods being declared as regular functions/procedures when using DefineClassByRTTI using redefine as overwrite.
Fixed: Memory leak in some situations when using dll calls in a script-based library.
Previous Versions
Version 7.7 (Mar-2017)
- New: RAD Studio 10.2 Tokyo Support.
Version 7.6 (Mar-2017)
Fixed: Wrong behavior when accessing default indexed properties of objects declared as global variables in a script library.
Fixed: Access Violation when unsetting events for components that have been already destroyed.
Version 7.5 (Jan-2017)
Fixed: Library browser not showing types of properties and method parameters when they were added using new RTTI.
Fixed: IF statements in Basic syntax were not accepting "END IF" at the end of statement if it was in the same line.
Fixed: Format function not working correctly on next gen compiler.
Fixed: Import tool failing when parsing types which name starts with "string"
Fixed: Comparing object values in mobile compiler was causing invalid type cast error.
Fixed: Invalid class type cast when registering controls with properties of type TBehaviorBoolean.
Fixed: Invalid Type Cast when setting a boolean property defined with RTTI from an expression.
Fixed: AV when destroying a control with an event handler set from scripter, in Mac OS X.
Version 7.4 (Aug-2016)
New: Support for record methods when using DefineRecordByRTTI.
Improved: Library browser now displays property types.
Improved: While debugging it's now possible to see source code of units that are not the active unit.
Improved: Significant performance increase when modifying arrays.
Improved: Code completion not showing up in some situations when script contained declared routines.
Fixed: Boolean value comparison failing in some situations when invoking methods defined by new RTTI.
Fixed: TatScriptDebugger component was removing OnSingleDebugHook event from scripter component after executing the dialog.
Version 7.3 (Jun-2016)
New: TatScripter.AutoLoadClassUsingRTTI property uses complete RTTI to automatic loading of classes when TatScript.DeferObjectResolution is True.
Fixed: Typing dot (.) in scripter memo in some situations was not opening the code completion window.
Fixed: TatScripter.OnRunningChange event not being called while scripter IDE was open.
Fixed: Design Options Dialog not showing selected colors when VCL style/theme is enabled.
Version 7.2 (Apr-2016)
New: Support for Delphi/C++Builder 10.1 Berlin.
Fixed: "List Index Out Of Bounds" error when acessing default properties.
Version 7.1.1 (Mar-2016)
New: TIDEEngine.OnConfirmSaveFile gives more control over the confirmation message "Save Changes?" when file was modified.
Fixed: Code completion not working for methods with string parameters - like FieldByName('Field').
Version 7.1 (Feb-2016)
New: Library Browser dialog provides to your end-user a full reference of available classes, methods, functions, constants, etc. available to be used in scripts.
Improved: Added *.png in the default filter for the picture editor in IDE designer.
Fixed: Event handlers receiving Int64 parameters were not working properly.
Fixed: Error when accessing components in a script form in mobile applications
Fixed: Parameter hints in IDE not showing when the parameter contains a string literal.
Fixed: Closing the IDE with modified files and then canceling closing upon confirmation dialog was turning some IDE icons into disabled state.
Fixed: Sporadic AV when using IDE and launching several non-modal script forms multiple times.
Fixed: TatScripter component disabled in component palette when targeting Android/iOS/Mac platforms.
Version 7.0 (Jan-2016)
New: iOS and Android support - TMS Scripter is now fully cross-platform supporting all supported Delphi platforms.
Improved: Code completion optimized for better speed.
Fixed: DefineClassByRTTI was assigning a wrong property as the default indexed property of the class.
Fixed: Memory leak in FindFirst, FindClose and FindNext methods.
Fixed: Import tool not reparsing some files that were previously parsed with errors.
Fixed: Wrong result values when calling dll functions that return Int64 values on Windows 32.
Version 6.5.4 (Sep-2015)
- New: RAD Studio 10 Seattle support.
Version 6.5.3 (Aug-2015)
- Fixed: TFormDesigner.OnCreateComponentClass event type signature changed to work around issue in C++.
Version 6.5.2 (Jul-2015)
New: Support for set properties when registering classes using new RTTI (DefineClassByRTTI).
New: LastExceptionLine and LastExceptionCol functions available from script.
New: TAdvFormDesigner.OnCreateComponentClass event provides an opportunity to manually create an instance of a component needed by the designer.
New: TatCustomScripter.RemoveProperty method.
Improved: Import tool updated with XE8 support.
Fixed: Published properties of type Int64 were not being automatically registered when registering a class.
Fixed: "True" and "False" constants had wrong types (integer instead of boolean) in Variant types (regression).
Version 6.5.1 (Apr-2015)
New: Delphi/C++Builder XE8 support.
New: LastExceptionLine and LastExceptionCol properties provide info about the source code position where last exception was raised.
New: TCustomFormDesigner.GridStepPixel property sets the number of pixels to move/resize controls when using Ctrl+Arrow keys.
Fixed: Application hanging when registering some specific classes/components using RTTI.
Fixed: Scripter IDE wrongly considering source was changed even though it was not modified.
Fixed: Sporadic "Index out of bounds" when executing compiled code previously saved.
Version 6.5 (Mar-2015)
New: Packages structure changed. Now it allows using runtime packages with 64-bit applications. It's a breaking change.
Improved: A breaking change was added for Delphi XE and lower, requiring you to add
Vcl.ScriptInit
unit to your project.Improved: TScrMemo replaces TAdvMemo as the syntax memo class. It's a breaking change.
Improved: DefineClassByRTTI sets default indexed property automatically.
Improved: TIDEEngine.PrepareXXXXDialog methods (Save/Load/SaveProject/Loadproject) made virtual protected.
Improved: TIDEPaletteToolbar.UpdatePalette now virtual.
Fixed: Format function giving wrong results when formatting multiple string values.
Fixed: Setting indexed elements of array parameters passed by reference were not changing the array in Basic language.
Fixed: Import tool generating importing code that might fail in 64-bit applications.
Fixed: Assigned function could fail in 64-bit applications.
Fixed: Pascal syntax now accepts spaces before and after dot for accessing object members (<Variable>.<Member>).
Fixed: "Cannot Focus Disable Windows" error message when right-clicking some third-party components in form designer.
Fixed: Method calls in with clauses had lower precedence than global properties.
Fixed: Margins were incorrect with anchored controls in forms using bsSingle border style.
Fixed: Memory leak when copying components in form designer.
Fixed: TatMethod and TatProperty assign now properly assign event properties.
Version 6.4 (Sep-2014)
New: Rad Studio XE7 support.
New: TIDEEngine.ProjectExt property allows specifying a project extension name different than '.ssproj'.
Fixed: Syntax memo incorrectly displaying commented code.
Fixed: AV when accessing default indexed properties with more than one index.
Fixed: Setting default indexed properties for untyped variable objects.
Fixed: Ord function not working for non-string values.
Fixed: Import tool incorrectly creating event adapter for events that returned a value (functions).
Fixed: OnSingleDebugHook event not being fired in TIDEScripter component.
Version 6.3.1 (May-2014)
New: Rad Studio XE6 support.
New: LibInstance property in TatClass, TatMethod, TatProperty classes indicates the library which registered them.
Improved: Deprecated methods: TatCustomScripter.AddClass, TatClasses.Add, TatClasses.AddDelphiClass. All must be replaced by DefineClass method.
Fixed: Icon for non-visual components in form designer were not being affected by OnGetComponentImage event.
Fixed: Insufficient RTTI Information when trying to import indexed TBytes property. Now the property is ignored (Delphi limitation).
Fixed: AV violation while destroying TIDEEngine in some rare situations.
Fixed: Some unicode characters being displayed incorrectly in object inspector.
Fixed: "Canvas does not allow drawing" error when using form designer in an styled VCL application.
Fixed: Rare Access Violation when closing all forms in scripter IDE.
Fixed: Controls not being displayed in some situations, after loading a project, when controls had their Visible property set to false.
Fixed: Setting object properties failing in some situations in 64-bit applications.
Fixed: Error when forcing varLongWord variants to integer values.
Fixed: "SSImport_Icon not found" error when compiling ImportTool project in some Delphi versions.
Version 6.3 (Feb-2014)
New: Automatic registration via RTTI now supports indexed properties (Delphi XE2 and up).
Improved: Code completion for local variables.
Improved: New TPaletteButton.ToolClass property allows checking what is the component class associated with a palette button.
Fixed: Error when calling methods such as Outer.InnerClass.HelloWorld and both Outer and InnerClass return script-based classes.
Fixed: Issue with component palette icons when compiling to 64-bit.
Fixed: Access Violation when reading record properties declared using RTTI.
Fixed: Setting ScriptFormClass property had no effect when creating forms from script.
Fixed: Access Violation when using code completion in some situations.
Fixed: Losing event handlers when renaming a component which name is contained by another component's name.
Fixed: Copy/paste operations were not copying event handlers properly.
Version 6.2 (Oct-2013)
New: TIDEDialog.Show method now allows IDE to be displayed as non-modal.
New: Rad Studio XE5 support.
Improved: TatScript.FileName property made public.
Fixed: Pascal single-line comments (starting with "//") not working on Mac.
Fixed: Error when trying to pass EmptyParam to OLE servers.
Fixed: AV when setting TIDEEngine.PaletteButtons at design-time.
Fixed: Issue with DebugStepOverLine and DebugUntilReturn methods when scripter is running in threads.
Fixed: Breakpoints were not being displayed after file was saved in IDE.
Fixed: Small glitch when selecting controls in form designer with fast mouse movement.
Fixed: Custom glyph grab handles not being displayed on graphical controls.
Fixed: MDI child script forms being displayed twice.
Fixed: Anchoring not properly working when creating forms with Position = poScreenCenter.
Version 6.1.1 (May-2013)
New: Rad Studio XE4 support.
Fixed: AV when trying to insert a component from component palette using keyboard and no form visible.
Fixed: Flickering when filtering components in component palette.
Fixed: IsDate function in VBLibrary now checks strings for valid dates.
Fixed: Memory leak when using Int64 values in Format function.
Version 6.1 (Mar-2013)
New: Latest AdvMemo 3.1.1 improvements.
Improved: Components now available at design-time for 64-bit applications.
Fixed: Loading forms now opens file in shareable mode to avoid problems with multiple projects accessing same form file.
Fixed: Events in very specific components like TvrTimer were not being set when form loads.
Fixed: Issues when compiling scripter with assertions off.
Fixed: Wrong line/column debug information when running pre-compiled code.
Fixed: Msg parameter not being passed as reference in DoCompileError method.
Fixed: Access violation when registering components in an specific order.
Fixed: Setting TatCustomScripter.ScriptFormClass property raised an incorrect exception.
Fixed: Wrong atScript.hpp header file in C++ Builder 2007.
Fixed: Designer handles not being updated when selected control was resized automatically after a form resize.
Version 6.0 (Sep-2012)
New: Support for executing scripts in Firemonkey applications.
New: Delphi XE3 and C++ Builder XE3 support.
Improved: DefineRecordByRTTI method now returns the generated class.
Improved: Better performance in import tool by using .spu files if .pas file was not changed.
Fixed: Duplicated entries in code completion window.
Fixed: Import tool parameter hints with default string values were being exported with single quotes causing syntax error in imported files.
Fixed: Issue when clearing some scripts between first and second project execution (implicit class references).
Fixed: Missing component names when loading forms at low level using TFDReader (without using designer component).
Fixed: Access Violation when closing main form custom IDE's.
Fixed: Access Violation when placing a component over a grab handle in form designer.
Fixed: Support for int64 values in Format function.
New: Dropped support for Delphi 5, 6, 2005, 2006 and C++Builder 6, 2006.
Note
TMS Scripter 6 is a merge of former Scripter Studio and Scripter Studio Pro. You can check version history of such products at the following links.