Former Scripter Studio History
Version 5.2 (Apr-2012)
New: 64-bit support in Rad Studio XE2.
New: All new features of TAdvMemo 3.0 included.
New: Support to declare 64-bit integer (Int64) literal values in script. Better handling of Int64 arithmetic operations (Delphi 6 and up only).
Improved: Import tool: Better handling of subtypes. It was ignoring properties/methods declared after subtype declaration.
Improved: All imported files for VCL updated for 64-bit support and some missing methods like TList.Count in Delphi XE and up.
Fixed: Several Issue with default properties (using With clause, expression in indexes, global objects).
Fixed: TatScriptDebugger issue when settings breakpoints in a second execution.
Fixed: Calling class functions using object references (eg. Button1.ClassName) failing in some situations.
Fixed: Issue with code completion in TatScriptDebugger and TatMemoInterface components.
Fixed: Import Tool issue with WideChar parameters.
Fixed: Issue with WideString parameters when defining classes using new RTTI.
Fixed: Import tool now splits string constants when they are longer than 255 chars.
Version 5.1 (Sep-2011)
New: Delphi/C++Builder XE2 Support.
New: Delphi XE2 support in import tool.
Improved: Class registration using new RTTI - now also import classes not registered with RegisterClass.
Fixed: Issue with combined indexed default properties.
Fixed: Minor bug when saving compiled code.
Fixed: Import tool now importing published methods.
Version 5.0 (Apr-2011)
New: Support for creating script-based classes.
New: New code insight class supporting parameter hints and improved code completion (to be used in custom IDE's).
New: Updated import tool to also import parameter hints of methods.
New: Updated imported VCL units for all Delphi versions, now including parameter hints.
New: Additional parameter in DefineMethod allowing to specify the parameter hint for that method.
Improved: Several other improvements added from TAdvMemo 2.3 version (see AdvMemo.pas source code for more info).
Fixed: Relative paths for script files not working with $(APPDIR) and $(CURDIR).
Version 4.7.1 (Dec-2010)
- Fixed: Registered version installer not working properly with TMS VCL Subscription Manager.
Version 4.7 (Dec-2010)
New: Updated imported VCL units for all Delphi versions, now including indexed properties, default parameters and other minor tweaks.
Fixed: Issue with getter of boolean properties using DefineClassByRTTI.
Fixed: Issue with TStringList.Create in Delphi XE imported Classes library.
Fixed: Functions with "out" parameters not working in ap_DateUtils.
Fixed: Install conflict between Scripter and other TMS packages.
Fixed: Instructions to return values for "out" parameters not generated by ImportTool.
Fixed: Issue with enumerated types in ImportTool.
Version 4.6.0.1 (Oct-2010)
Improved: Information about CurrentClass in Context parameter for OnUnknownElementEvent event.
Fixed: Issue with InStr function in VB Script Library.
Fixed: Issues installing Scripter Studio on RAD Studio XE.
Version 4.6 (Sep-2010)
New: RAD Studio XE Support.
New: Support for default indexed properties in script syntax (e.g. Lines[i] instead of Lines.Strings[i]).
Improved: C++ Builder source code examples included in Scripter manual.
Improved: Import Tool parser is now recognizing most of new Delphi syntax features and provides RAD Studio XE support.
Improved: Options in DefineClassByRTTI method to redefine an already defined class in scripter.
Fixed: Issue with getter of boolean properties.
Fixed: Issue with script executed step by step while watching a variable.
Fixed: Issues with DefineClassByRTTI method (registering of constructor overloads, return of var/out method parameters).
Fixed: Issue with record declarations in units imported by ImportTool using enhanced RTTI.
Fixed: Issues with code completion (up to Delphi 2005).
Fixed: Find and Replace in memo didn't work with Match Whole Word Only.
Version 4.5 (Jul-2010)
New: Automatic classes, methods and properties registration using new enhanced RTTI (Delphi 2010 and later).
New: Extensive help component reference.
New: Fully documented source code.
Fixed: Error compiling some imported units in Delphi 2010.
Fixed: Issue with SaveCodeToFile when using form components of a non-registered class.
Fixed: Memory leak when using some rare syntax constructions in script.
Version 4.4.6 (Jan-2010)
New: TatCustomScripter.LoadFormEvents property allows setting event handlers when loading form dfm files saved in Delphi.
Improved: Char constants now accept hexadecimals (#$0D as an alternative to #13).
Fixed: VB function MsgBox was displaying incorrect window caption.
Fixed: VB function Timer was performing wrong calculation with miliseconds.
Fixed: Issue with OnRuntimeError not providing correct source code row and col of error.
Version 4.4.5 (Sep-2009)
New: Delphi/C++ Builder 2010 support.
New: Array properties supported in COM objects.
Improved: Pascal syntax allows "end." (end dot) in main script block.
Improved: AdvMemo files updated to latest versions.
Fixed: Issue with
try..except
andtry..finally
blocks.
Version 4.4 (May-2009)
New: "Private" and "Public" keywords allow defining private global variables, private subs and private functions (not visible from other scripts) in Basic scripts.
New: Variable initialization in Basic scripts (e.g., Dim A as String = "Hello").
New: Return statement in Basic scripts.
New:
If..Then..
statements without "End If" for single line statements (in Basic scripts).New:
Try..Catch..End
Try syntax in addition toTry..Except..End
(in Basic scripts).New: TCustomScripter.ScriptFormClass allows providing a different class (derived from TScriptForm) for forms created from script.
Improved: When scripter don't find a library, a compile error is raised (instead of an exception).
Version 4.3 (Feb-2009)
New: "new" clause in Basic script. e.g "MyVar = new TLabel(Self)".
New: const declaration in Basic script.
New: VBScript functions Redim, RedimPreserve, Split, Join, StrReverse and Randomize.
New: TatCustomScripter methods BeginRefactor and EndRefactor to allow changing in source code without clearing events.
Improved: Better load/save compiled code engine.
Improved: Exposed TAdvMemo.VisiblePosCount as public property.
Improved: Scrolling in memo when ActiveLine property is set.
Improved: VBScript functions LBound, UBound, MsgBox now have default parameters.
Fixed: Memory leak in memo using word wrap.
Fixed: Small issue with cursor position handling for wordwrapped memo.
Fixed: Issue with backspace & selection in memo.
Fixed: Issue with input of unicode characters in memo.
Fixed: Issue with paste after delete in specific circumstances in memo.
Fixed: Issue with horiz. scrollbar updating in memo.
Fixed: AV in some scripts accessing indexed properties.
Fixed: AV when setting breakpoint in begin clause.
Version 4.2 (Oct-2008)
New: Delphi 2009/C++Builder 2009 support.
Fixed: Issue with AssignFile procedure.
Fixed: Issue when removing attached events.
Fixed: Issue while using debug watches for global variables.
Version 4.1 (Jul-2008)
New: Method TAdvMemo.SaveToRTFStream.
New: Property TatCustomScripter.Watches (TatScripterWatches class) with the concept of watches for the whole scripter, not only the current script being executed.
Improved: Memo syntax highlighting with pascal syntax.
Improved: Autocompletion list updating while typing.
Improved: Local variables are now initialized to NULL.
Fixed: Runtime error message was not displaying correct line and number of error.
Fixed: Issue with parameters passed by value to subroutines behaving like by reference.
Fixed: Issue with paste on non expanded line in TAdvMemo.
Fixed: Issue with repainting after RemoveAllCodeFolding in TAdvMemo.
Fixed: Issue with pasting into an empty memo in TAdvMemo.
Fixed: Issue with TrimTrailingSpaces = false in TAdvMemo.
Fixed: Issue in Delphi 5 with inserting lines in TAdvMemo.
Fixed: Issue with scrollbar animation on Windows Vista in TAdvMemo.
Fixed: Gutter painting update when setting Modified = false programmatically in TAdvMemo.
Version 4.0 (Apr-2008)
New: TatScripter component supporting cross-language scripts (both Pascal and Basic), allowing to replace TatPascalScripter and TatBasicScripter by a single component.
New: Forms support. You can now declare forms and instantiate them from scripts. You can create form methods and load forms from dfm files.
New: TatScript.Refactor property retrieves a TatScriptRefactor object with methods for refactoring source code, like "DeclareRoutine" and "AddUsedUnit".
New: Debugger now allows tracing into script-based function calls.
New: TatScript.UnitName property allows a script library to be registered using "uses MyLibrary" syntax without needing MyLibrary to be in a file.
New: Script-level breakpoints allow better control of breakpoints for debugging, instead of VirtualMachine-level breakpointsNew: Basic syntax allows declaring the variable type.
New: OnBreakpointStop event in scripter component is called whenever the script execution stops at a breakpoint.
New: OnSingleDebugHook event allows better performance for debugging than OnDebugHook.
New: Demo project which shows how to use forms with scripter.
Fixed: Scripter meta info (ScriptInfo): TatVariableInfo.TypeDecl value now has the correct value (it was empty).
Fixed: Some variable values were not being displayed when using TatWebScripter.
Fixed: Minor bugs.
Version 3.3 (Oct-2007)
New: TSourceExplorer component. Shows the script structure in a Delphi-like source explorer tree.
New: C++ to Pascal converter demo shows the capabilities of TatSyntaxParser component.
Improved: Scripter Studio Manual includes a "getting started" section for TatSyntaxParser and TSourceExplorer components.
Improved: More accurated value in TatVariableInfo.DeclarationSourcePos property.
Improved: Small optimizations in parser.
Improved: Many warnings removed.
Fixed: Wrong event name in object inspector in Greatis integration demo.
Version 3.2 (Jul-2007)
New: Delphi 2007 support.
New: Improved Code Completion - now it retrieves methods and properties at multiple levels for declared global/local script variables (e.g. "var Form: TMyForm"), and retrieves local script functions and procedures.
New: Improved compilation speed.
New: Improved event handling. Now it allows multiple scripts in a single scripter to handle component events. It's possible to declare a script event handler from script code (e.g. MyObject.Event = 'MyScriptEventHandler'), even if the scripter component has multiple script objects.
New: Improved import tool for better importing: size of sets and record parameters by reference.
New: New OnUnknownElement event allows defining methods and properties on the fly during compilation when a unknown method or property is found by the compiler.
New: Fixed problem with AV in watch viewer.
New: Updated VCL import files.
Import tool: Support for Delphi 2007 in import tool.
Version 3.1 (Sep-2006)
New: Support for calling DLL functions from script, allowing even more flexibility for scripts. This feature is enabled by AllowDLLCalls property.
New: Support for registering methods with default parameters.
New: OnRuntimeError event.
New: "call dll functions" demo. Includes pascal and basic syntax, and also source code for CustomLib.dll (used by the demos).
New: "methods with default parameters" demo for Pascal and Basic.
New: "simple demo" which creates the components at runtime.
New: Turbo Delphi compatible.
Updated Scripter Studio manual with the new features and in a new format (chm).
Version 3.0.1 (Jul-2006)
New: TatCustomScripter.AddDataModule method.
New: AName parameter in TatScript.SelfUnregisterAsLibrary method.
Fixed: Form events where not being saved by TSSEventSaver components.
Fixed: Memory leak in some specific cases when an event handler was removed from dispatcher.
Version 3.0 (Mar-2006)
New: Syntax highlighting memo with codefolding support added.
New: Delphi 2006 & C++Builder 2006 support added.
New: Registered versions comes with VCL ImportTool and full source code for ImportTool.
Version 2.9 (May-2005)
New: TatVBScriptLibrary library which adds several function compatible with the available ones in VBScript. Functions added: Asc, Atn, CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CreateObject, CSng, CStr, DatePart, DateSerial, DateValue, Day, Hex, Hour, InStr, Int, Fix, FormatCurrency, FormatDateTime, FormatNumber, InputBox, IsArray, IsDate, IsEmpty, IsNull, IsNumeric, LBound, LCase, Left, Len, Log, LTrim, RTrim, Mid, Minute, Month, MonthName, MsgBox, Replace, Right, Rnd, Second, Sgn, Space, StrComp, String, Timer, TimeSerial, TimeValue, UBound, UCase, Weekday, WeekdayName, Year.
New: OnExecHook event for callback while executing script. CallExecHookEvent property must be set to true to activate the event.
Updated: Manual with list of available functions in system library and vbscript library.
Fixed: A couple of bugs in Basic - REM, DO statements, and others.
Fixed: Greatis demo - component properties were not listing components in the form.
Fixed: Wrong example in manual for Basic Syntax in Exit.
Fixed: D6 errors in imports.
Version 2.8 (Feb-2005)
New: Script file libraries system: now it's possible to use other script files by declaring the files in the uses clause. This feature is enabled by LibOptions.UseScriptFiles property.
New: Script file libraries works with source files and p-compiled files.
New: LibOptions property allow settings of script file libraries system. Search path can be defined, as well the default extensions for the source files and compiled files.
New: Added a samples subdirectory in "ide" demo with "newversion.psc" which shows ilustrates script file libraries usage.
New: Form scripters are now aware of components of the form (not only the controls).
Fixed: Script IDE demo - showing duplicated messages.
Fixed: Problems with Greatis integration and Greatis + Scripter Studio demo.
Fixed: Minor bug fixes & improvements.
Version 2.7.1 (Oct-2004)
- New: Delphi 2005 support added.
Version 2.7.0 (Oct-2004)
New: TSSInspector and TSSEventSaver components for smooth integration with Greatis Runtime Fusion components.
New: "downto" support in for loops (Pascal syntax).
New: Added Widestring support in AddVariable method and GetInputArgAsWideString function.
New: New TAdvMemo v1.6 integration.
Fixed: OnCompileError was retrieving wrong line/row error when compiling script-based library.
Fixed: Bug when destroying Scripter Studio at design-time.
Version 2.6.4 (Aug-2004)
New: Script-based libraries can be used from different scripter components and even different languages (see updated "script-based libraries" demo).
Fixed: Parameter with names starting with "Var" was considered as by reference.
Fixed: MessageDlg call was not working in Delphi 5.
Fixed: It's now possible to Halt all running scripts.
Fixed: Errors with Create method expecting 0 parameters (important! current users see AScript.INC file).
Version 2.6.3 (Jun-2004)
Improved: Debugger speed.
Fixed: Syntax Error with WriteLn in webscripter.
Fixed: missing
begin..end
block in webscripter demo.Fixed: TypeCast was not working in calls. Example:
TStringList(S).Add('Hello');
.Fixed: SaveCodeToFile and LoadCodeFromFile were failing in some situations.
Version 2.6.2 (May-2004)
- New: ShortBooleanEval property to control optional short-circuit boolean evaluation.
Version 2.6.1 (Apr-2004)
Improved: More overloaded AddVariable methods.
Improved: RangeChecks off directive in ascript.inc.
Fixed: Bug with script libraries.
Improved: TAdvMemo syntax highlighting memo.
Version 2.6.0 (Apr-2004)
New: Script-based libraries. It's now possible to call routines/set global variables from other scripts. See new "script-based libraries" demo to see how it works.
New: File-manipulation routines added: AssignFile, Reset, Rewrite, Append, CloseFile, Write, WriteLn, ReadLn, EOF, FilePos, FileSize (thanks to Keen Ronald).
New: More system functions added: Abs, ArcTan, ChDir, Chr, Exp, Frac, Int, Ln, Odd, Ord, Sqr, Sqrt.
New: Support to ElseIf constructor in Basic scripter.
New: Support to Uses and Imports declaration in Basic scripter (thanks to Dean Franks).
New: Code editor with Drag & drop support.
New: AdvCodeList component.
New: Code editor with wordwrap support (no wordwrap, wordwrap on memo width, wordwrap on right margin).
New: Code editor with Code block start/end highlighting while typing.
New: Code editor with properties ActiveLineColor, ActiveLineTextColor properties added.
New: Code editor with BreakpointColor, BreakpointTextColor.
New: Code editor with Actions for most common editor actions.
Improved: Could not use events or call subroutines on precompiled scripts (loaded from stream/file).
Improved: CASE and SELECT CASE statements not working properly.
Improved: FOR statements with negative step not working properly.
Improved: Changing CanClose parameter in OnClose event has no effect.
Improved: Basic double double-quotes in strings not working properly.
Improved: Unknown variable error in FOR statements when OptionExplicit = true.
Version 2.5.3 (Mar-2004)
- Fixed: Small fixes and improvements.
Version 2.5.2
New: Debugging can start from any script subroutine, not only main block.
New: Properties in TatScriptDebugger component: RoutineName, UpdateSourceCode and MemoReadOnly.
Improved: TatScripterDebugger.Execute method now works even if script is already running.
Improved: Values of global variables keep their values between scripter executions.
Fixed: Bug with variant arrays.
Fixed: Bug with
try..except
blocks while debugging.
Version 2.5.1
- Fixed: Several bug fixes and stability improvements.
Version 2.5
New: WITH clause language construct.
New: Type casting.
New: IS/AS operators (only between object and class).
New: Typed variable declarations, e.g,
var Table: TTable;
. It will only take effect for object variables.New: Global variables.
New: Watches.
New: Forward directives.
New: Integrated autocompletion in IDE and debugger.
New: Integrated hint for evaluation of variables during debug.
New: Syntax memo with bookmark support.
New: IDE demo app.
Improved: WebScripter & PageProducer component for creating Pascal based ASP-like web applications.
Improved: Multi-thread support.
Version 2.4.6
Improved: WebScripter component.
New: PageProducer component to be used with WebScripter.
Version 2.4.5
New: WebScripter component (written by and provided by Don Wibier) and Page producer component that parses Pascal or Basic ASP-like files and produces HTML files.
New: Basic Scripter: "Set" word supported. Example:
Set A = 10
.New: Basic Scripter: "&" operator supported. Example:
MyFullName = MyFirstName & \" \" & MyLastName
.New: Pascal Scripter: function declaration accepts result type (which is ignored):
function MyFunction: string;
.New: Pascal Scripter: const section supported:
const MyStr = 'This is a string';
.New: AdvMemo insert & overwrite mode.
Improved: AdvMemo numeric highlighting.
Version 2.4
New: AdvMemo with parameter hinting.
New: AdvMemo with code completion.
New: AdvMemo with error marking.
Improved: Various smaller scripter engine improvements.
New: DynaForms demo added.
Version 2.3.5
New: Support for hexadecimal integers ($10 in Pascal, 0x10 in Basic).
New: Allow spaces between function names and parameters, eg.:
ShowMessage ('Hello world!');
.New: Uses clause (to use import libraries), eg.:
uses Classes; {Load Classes library if TatClassesLibrary was previous registered}
.New: From Delphi function, it is possible to know name of method or property called, using CurrentPropertyName and CurrentMethodName functions from TatVirtualMachine object.
New: No need to assign OnDebugHook event to debug script.
New: Use of params by reference when calling script procedures from Delphi.
New: Changed class name of internal library, from TatSytemLibrary to TatInternalLibrary.
New: Minor bug fixes (array property).
Version 2.3
- New: Support for Pascal & Basic script engines for Kylix 2,3.
Version 2.2
Improved: Syntax highlighting memo, with improved speed, SaveToHTML function, Print.
Improved: Design time script property editor.
Improved: Debugger control.
Version 2.1
New: Seamless and powerful Delphi component event handling allows event handling chaining between Delphi and Scripter in any sequence allows setting component event handling from Delphi or from Scripter or from both.
New: 4 sample applications for Pascal and Basic scripter that shows the new powerful event handling
Version 2.0
First release as Scripter Studio, suite of scripter tools for applications.
New: Run-time Pascal and Basic language interpreter.
New: Design-time and run-time debugger.
New: Pascal and Basic syntax highlighting memo with integrated debugging facilities.
New: FormScript, form-aware descendant scripter components for Basic and Pascal.
New: Scripter Studio developers guide.
New: Run-time script debugger dialog.
New: Arguments passed by reference on local procedures/function and on object methods capability added.
New: Safe multiprocessing/multi-threading features with new method signature and source code rearrengement.
New: Automatic variable declaration, now is controlled by OptionExplicit property.
New: Array properties, variant array constructor and string as array support was introduced.
New: Class methods and properties support and class references (allow to implement, for example,
Txxxx.Create(...);
).New: Additional system library usefull routines: Inc, Dec, Format, VarArrayHighBound, High, VarArrayLowBound, Low, TObject.Create, TObject.Free, VarToStr.
New: Extendable architecture open to add support for other languages in future updates.
Improved: Object Pascal syntax compatibility (not, xor, shl, shr, \, div, mod, break, continue, exit, null, true, false, var, case, function).
Version 1.5
- TatPascalScripter release.