What's new in Precision Delphi Script Portable 1.9

Feb 19, 2013
  • added - Building a standalone application from the script, including an optional encryption of your code [not available in Lite version]
  • added - Conditional defines (support for DEFINE, UNDEF, IFDEF, IFNDEF, ELSE, ENDIF directives)
  • added - Simple distribution model scenario (if pdScript.exe file is renamed to "xyz.exe" and distributed along with "xyz.dpas" script, then "xyz.dpas" is executed automatically after running "xyz.exe" without parameters)
  • added - Support for the following new classes, components, events, properties and routines:
  • TMetafile and TMetafileCanvas classes
  • TPrinter object
  • TSplitter and TStringGrid components support
  • TForm.OnMouseWheel event
  • TScrollBox.OnCanResize and TScrollBox.OnMouseWheel events
  • TScrollBar.IsScrollBarVisible property
  • OnMouseEnter and OnMouseLeave events has been added to a lot of controls
  • LoadLibrary, FreeLibrary, GetProcAddress and a other system routines
  • EncodeStream and DecodeStream routines
  • GetCurrentLangCode and GetCurrentCountryCode routines
  • added - Include directives can contain asterisks now. For example: In {$I *.xyz} directive, asterisk is replaced with the current script filename (without an extension). If ScriptLangCode is specified (ie. it is not empty) then asterisk is replaced with the current script filename plus language code value (ie. myscript.cs.dpas) first.
  • added - Overloaded Execute_pdScriptFunction routine has been added to pdScriptAPI.pas unit, to support execution of simple procedures and functions (without parameters) from within previously executed scripts
  • added - New sample scripts (FileStreamDemo, HostInterface, OLE, BuildDemo)
  • improved - host-interface pointer reference is now accessible through GetVariable('HostInterface') function
  • fixed - OnCloseQuery and OnClose events has been fired twice in some situation on Vista and newer
  • fixed - THTTPSend declaration. Wrong ancestor was declared, so TObject members (like Free) were not accessible
  • fixed - Execute and Update methods of TAction class are now available for execution from the code
  • fixed - TWinControl.CanFocus method does not cause "Access violation..." anymore
  • and other minor improvements and fixes

New in Precision Delphi Script Portable 1.8.2 (Apr 11, 2012)

  • added: "host-interface" option can be used to pass IDispatch interface from hosting application to called script. See "/pds{}" parameter for more. This option has been added to support incorporation of pdScript interpreter into X-SQLT projects.

New in Precision Delphi Script Portable 1.8 (Apr 11, 2012)

  • added: Microsoft's ADO (ActiveX Database Objects) support - TADOConnection, TADODataSet, TADOCommand, TADOQuery, TADOTable, TADOStoredProc, TRDSConnection, etc.
  • Note: ADO DB features are not available in "pdScript Lite Edition".
  • added: Sample script for ADO DB usage.
  • added: Encryption functions GetTextHashEx and GetFileHashEx.
  • fixed: Plugged script forms (executed via pdScript Embedded interpreter) did not support the "Tab order" loop (traversing window controls by Tab key). This is corrected now.
  • fixed: Executing functions with multiple parameters via pdScript Embedded interpreter.
  • fixed: DeleteFile and GetFileSize functions internal declaration (they had thrown an error, because of pointing to Windows function declarations internally instead of Delphi declarations).

New in Precision Delphi Script Portable 1.7.5 (Apr 11, 2012)

  • fixed: Bug in "keep-alive" scripts, when executing functions with more than one parameter
  • fixed: Tab order loop behavior in plugged windows (ie. in forms injected from script into the host application)
  • added: New demonstration program, that shows how to call script functions from within your application

New in Precision Delphi Script Portable 1.7.4.6 (Jan 6, 2012)

  • added: "keep-alive" option for scripts executed by embedded interpreters (both pdScriptE.dll and pdScriptECL.dll). When this option is specified, script remains in memory after the initial execution, and you can call the functions declared inside these scripts anytime you want, until you release the script. "keep-alive" option affects also another new features, such as "non-modal" forms (see bellow).
  • added: Support for non-modal forms when the script is executed via embedded interpreter from within a host application (see "keep-alive" option in the help reference)
  • added: Support for plugging the script form as a child of selected control inside the calling host application (for embedded interpreter only, see "keep-alive" and "host-parent" options in the help reference)
  • added: Http protocol support - easy to use class (THttpSend) and simplified direct functions, that are imported from Ararat Synapse project (synapse.ararat.cz)
  • added: Png image support - not included into lightweight interpreters (pdScriptCL.exe and pdScriptECL.dll)
  • added: Simple localization mechanism - you can create localized variants of your scripts or forms and then only pass the desired language code as parameter to the interpreter
  • added: CallInline and CallInlineEx functions for executing dynamically created scripts from within currently executed script
  • added: New demonstration script for using Http protocol, demonstration project "pdScriptDll" has been updated to show you the possibilities of "keep-alive" option
  • improved: Specified linked DLLs can be located directly near the script or in the relative path (there is no need to place custom DLLs near the interpreter or into the SYSTEM folder)
  • improved: Better support for some Object Pascal classes related to graphics (TGraphic, TBitmap, TPicture), TIcon class has been added
  • improved: HostCallback routines - for getting results with known maximum length, now the input buffer can be set up before you call HostCallback function (ie. SetLength(buff,64); HostCallback('getdata','',buff); ). Callback is then executed only once (the step of getting the length of result string inside the host application is skipped), which is obviously faster.
  • improved: Script windows executed from within embedded interpreters (DLLs) now display a correct icon (taken from script form) in task-switching panels (the system icon has been displayed there before)
  • changed: pdScript related command-line parameters (/PDSC, /PDSL, etc.) were replace by a complex parameter "/pds{}", where now contains the definition of desired interpreter options. Old parameters are still supported, but their support will be cancelled in some future versions. More info can be found in the help reference.
  • improved: Programmer's Help Reference - to support context sensitive help form within pdScript IDE
  • fixed: A correct inclusion of script forms into the windows list of calling host application, that affects a correct displaying of modal and non-modal windows during task switching
  • fixed: Script routines related to menus have not been correctly included into the scripting engine (TextToShortCut, ShortCutToText, NewMenu, NewItem, etc.)

New in Precision Delphi Script Portable 1.6 (Oct 3, 2011)

  • improved: RemObjects PascalScript engine has been updated to the latest version, including new functions, types, constants and classes (see bellow). After installing this update, please, beware of using the appropriate Char, AnsiChar, PChar and PAnsiChar types (especially when interacting with DLLs) in your scripts.
  • added: Support for a lot of new Object Pascal classes, components, routines:
  • dbExpress (TDataSet, TDataSource, TSQLConnection, TSQLDataSet, TSQLQuery, TSQLTable, TSQLServerMethod, TSQLStoredProc)
  • Note: dbExpress features are not available in "pdScript Standard Edition".
  • classes and components (TList, TWideStrings, TWideStringList, TScreen, TMonitor, TPicture, TBasicAction, TBasicActionLink, TAction, TActionList, TBitBtn, TSpeedBtn, TToolBar, TToolButton, THotKey, TUpDown, THeaderControl, THeader, TNotebook, TStatusBar, TRegistry, TClipboard, TMouse)
  • global variables (Screen, Clipboard, Mouse)
  • registry routines (DeleteRegistryValue, CreateRegistryValueStr, CreateRegistryValueInt, CreateRegistryValueBool, CreateRegistryValueBinary, GetRegistryValueStr, GetRegistryValueInt, GetRegistryValueBool, GetRegistryValueBinary, RegistryKeyExists, RegistryAttributeExists, GetRegistrySubKeys,GetRegistryValueNames, HKEY_ constants)
  • shell routines (GetSpecialFolder, GetWindowsFolder, GetTempFolder, CSIDL constants in "shell.inc")
  • Ole/COM routines (CreateRemoteComObject, GetComCtlVersion, OleError, GUIDToString, ProgIDToClassID, ClassIDToProgID, CreateRegKey, DeleteRegKey, GetRegStringValue, CreateClassID)
  • other routines (Sleep, SleepEx, IntToHex, RGB, StringToColor, MaxInt, TColorRef, Point, Rect, Bounds, Randomize, Random, UpCase, UTF8Encode, UTF8Decode, AnsiToUTF8, UTF8ToAnsi, GetMem, FreeMem, __pchar, __pointer, __tobject)
  • types (Pointer, HDC, HKL, HINST, HMODULE, HFONT, HICON, HCURSOR, HRESULT, TMethod, ucs2char, ucs4char, utf8string)
  • constants (S_OK, S_FALSE, E_NOINTERFACE, E_NOTIMPL, E_UNEXPECTED)
  • TCanvas now supports methods Rectangle, FillRect, RoundRect, Arc, Chord and Ellipse
  • TStrings class now supports Capacity, ValueFromIndex, Delimiter, StrictDelimiter, DelimitedText, LineBreak and QuoteChar properties
  • "Action" property is now declared for all controls
  • "Create" constructor is now declared for TComponent and all its descendants
  • added: HostCallback function, that supports callback processing between the host application and the script (for embedded interpreter). ANSI variant (HostCallbackA) also available.
  • added: /PDSH parameter - allows you to pass your host callback routine pointer to the pdScript (for embedded interpreters only).
  • added: "IsCalled" global variable, that indicates if the script has been called via Call/CallEx methods (usually used to perform a Self.ShowModal call for the script's form to stay on the screen)
  • added: SelectColor and SelectFont routines for displaying the color selection dialog or font selection dialog respectively
  • added: /PDST switch for both command-line and embedded interpreters. Allows you to hide the Windows taskbar button of executed script (intended for GUI based scripts).
  • added: A folder "%COMMON_DOCUMENTS%\pdScript\Lib" has been added to the interpreter's "Library Path" (so you can also place your custom scripts and declaration files there)
  • added: Predefined pdScriptAPI.pas unit for Delphi developers. You can use this unit for easy inclusion of pdScript embedded interpreter into your applications.
  • added: New demos (ODBC access, integration with newLISP language)
  • fixed: The interpreter's ExitCode value for the script, that was executed without a flag to check syntax (/PDSC), and that failed to compile, is now correctly set to 1 (instead of 0 before)
  • fixed: The interpreter's ExitCode value for top level GUI based scripts is now correctly taken from the code (instead of an intermediate value taken before the main form is displayed)
  • fixed: pdScriptInlineA function in embedded interepreters (always crashed after the script execution has been finished)

New in Precision Delphi Script Portable 1.0.5.5 (Aug 9, 2011)

  • Added: Enhanced schema for including files - {$I } directive can be nested
  • Added: Embedded pdScript interpreter (pdScriptE.dll and pdScriptECL.dll libraries are provided)
  • Added: Call and CallEx functions for executing another script inside the same instance of the interpreter. Additionaly, functions ProjectParamCount and ProjectParamStr have been added.
  • Added: Special "callback" functions for using from within a linked DLLs.
  • Added: New info variables "Interpreter", "LibraryPath" and "ScriptFileName" (for GetVariable function)
  • Added: Support for SendTextMessage function. SendMessage and PostMessage functions are available via winuser.inc file.
  • Added: New demonstration scripts and projects
  • Improved: Programmer's Reference has been improved and updated
  • Improved: Installation for non admin users. pdScript now installs in portable mode when the user has no admin-rights.
  • Fixed: GetVariable / SetVariable support in pdScriptCL (they did not work correctly in this command-line variant)
  • Fixed: Localized message dialog captions and buttons (added missing support routines LocalizeMsgDlgCaption and LocalizeButtonCaption)

New in Precision Delphi Script Portable 1.0.3.1 (Jul 21, 2011)

  • Added - Support for calling standard functions AnsiCompareStr, AnsiCompareText, AnsiSameStr, AnsiSameText, ExtractFileExt, ExtractRelativePath, Format, LastDelimiter and SysErrorMessage
  • Added - New internal functions ExtractRelativePathEx, ExpandFileNameEx, GetFileVerInfo and GetFileVerInfoEx
  • Added - Examples for linking the functions from DLL and BPL libraries, and for using the ShellExec functions
  • Improved - Handling exceptions from REM Objects PascalScript engine compilation process
  • Improved - Setup wizard (adding the pdScript installation folder to the PATH environment variable, shortcuts for the Help and Examples are added to the Start Menu).
  • Fixed - Calling syntax for functions ShellExec, ShellExecAndWait, ShellExecAndWaitWithExitCode and WinExecCapture
  • Fixed - {$I} directive does not have to be a case sensitive anymore
  • Fixed - Bug in 3rd party REM Objects PascalScript engine - handling TPopupMenu.OnPopup event
  • Fixed - A few undefined functions have been removed from the Programmer's Reference (where they remained from the alpha version).