HackCAD is end-user customizable!
By building scripting support into your applications, you can provide a high degree of configurability, flexibility and automation control in your applications.
- It allows modification of the application behaviour without needing to update the full application. Just sending a new small script file is sufficient.
- It allows you to create and debug scripts and forms at runtime in an Delphi-like Integrated Development Environment.
- End users can add totally new functionality to an application by binding application logic with COM servers through scripting.
- Different end user specific rules can be put in scripts allowing to maintain a single application for different uses
- And much more ...
Scripter supports pseudo-compiled scripts, making time critical script routines even faster.
- Integrated Development Environment (IDE) allow creating script projects at runtime with multiple cross-language scripts (Basic and Pascal) and forms
- Support for cross platform use: Win32, Win64, macOS, iOS and Android
- Visual form designer and Object inspector at runtime
- Integrated and automatic debugging system in the IDE, including breakpoints, watch viewer, trace into libraries, etc.
- Component palette in both Delphi 7 and Delphi 2007 styles
- Integrated syntax highlight memo with automatic code completion
- Separated components to build your own custom IDE
- Delphi 2007-like filtering system in Tool Palette
- Helper dialogs in IDE like Alignment, Size, Designer options, among others
- Events in IDE components allow saving/loading scripts and forms to/from database
- Run-time Pascal or Basic language interpreter
- Cross-language scripter component allows calls to Basic scripts from Pascal scripts and vice-versa
- Ability to load Delphi dfm forms and run them
- Access any Delphi object in scripts, including properties and methods!
- Supports try..except and try..finally blocks in script
- Allows reading/writing of Delphi variables and constants in script
- Allows access (reading/writing) script variables from Delphi code
- You can build (from Delphi code) your own classes, with properties and methods, to be used in script
- Most of Delphi system procedures (conversion, date, formatting, string-manipulation) are already included (IntToStr, FormatDateTime, Copy, Delete, etc.)
- You can add your own custom functions, using AddFunction method
- You can save/load compiled code, so you don't need to recompile source code every time you want to execute it
- Script libraries
- Thread-safe scripter engine
- COM support
- Support for calling DLL functions
- Debugging capabilities (breakpoint, step into, run to cursor, pause, halt ...)
Debugging a form script in the IDE
Using the filter in the Tool Palette
Code completion shows properties and components of the form
Debugging scripts from a FireMonkey application on macOS
Dynamic script generated form in a FireMonkey application
Following demos are provided for both the Pascal and Basic scripter:
|IDEPro||Main demo which shows the full IDE Environment|
|Adding methods and properties||Shows how Delphi object methods and properties are made available in scripter through a library|
|ADO||Shows COM based access to ADO from scripter|
|Case||Shows a case structure|
|Case with expressions||Shows a complex case structure with expressions|
|Class methods||Shows object creation and class method invoking|
|DB Import library||Shows use of imported Delphi DB library|
|Debugger||Shows the script debugger|
|DynaForms||Shows dynamic form creation from script|
|Excel||Shows COM based access to Excel from scripter|
|MSWord||Shows COM based access to Word from scripter|
|Outlook||Shows COM based access to Outlook from scripter|
|Var parameters||Shows use of parameters by reference in scripter|
|XMLDOM||Shows COM based access to XMLDOM from scripter|
|Setting events from Delphi||Shows setting scripter based event handlers from Delphi code & event sequencing|
|Custom events||Shows straightforward scripter based component event handling|
|Event handling||Shows form event handling and initializing|
|Event pushing||Shows event handling sequence manipulation|
|Script-based libraries||Shows how to use libraries of script functions|
|Threads||Shows threadsafe use of scripter engine|
|WebScripter||Shows use of scripter to generate scripted generated web contents|