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. 
 
Feature details
- Integrated Development Environment (IDE) allow creating script projects at runtime with multiple cross-language scripts (Basic and Pascal) and forms
 - 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
 - Delphi 2007-like filtering system in Tool Palette
 - Helper dialogs in IDE like Alignment, Size, Designer options, among others
 - Events 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 ...)
 
Screenshots
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

Demo overview
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 |