
maXbox Blog 2011 - Release 31.01.2011
1. Technical Blog
mX3 for Kings & Queens and Guillotines
Programming for Free
- OpenTools API Inbuilt functions of the App allows for pre and post processing of all public methods and properties of the mX3 framework anatomic.
E.G. you can alter title or form of the GUI or set your own menu, memo or edit style. You find the functions in /Debug/Code Completion List/ at the end of the output. Check also the ex. 143_OpenTools_API. Full source code for the box
and other Libs like SynEdit or ImageFileLibBCB is provided.
- Provided Functions. Over 600 new Delphi, Pascal, network and Indy functions registered and built in (pre compiled) and now 810 functions/procedures and 120 types and constants provided (see file: upsi_allfunctionslist.txt) or in menu /Help/All Functions List. All Functions can create custom commands in your script that can process parameters and return result sets using the same framework objects and methods used for Delphi or Pascal.
These commands or new ones can also be organized into custom namespaces by setting a include file like the pas_includebox.inc file.
The function Show Interface in the context menu leverages this capability to implement a "Overview" command that returns a list on the current state of all used functions in a script.
- Command Line Interface. The mX3 is fully command line enabled for both the Win and Linux system, see example 150_command_line.
Ease of use
- Object Oriented. Authored and compiled in Delphi 2007 SP2. The GUI is simple with code edit and output memo, error handling is exception based and built in resource management is provided. Simple context menu
- Single sourced. Allows apps or scripts to run without change in both the win32 and linux platforms or alter it with directives.
- Solid Engine. With the function ProcessMessagesON/OFF or IncludeON/OFF you can switch the state of the runtimer and it doesn't hang after long running (Application.ProcessMessages). Also new error log under /Debug/Show Last Exceptions available.
Performance
- Light weight design in one Exe. No Installation, runs from Stick
- Delphi Native Compiler. The mX3 tool can be used directly independent of VCL components or any other installations.
Open Architecture
- Framework source code. Full source code included by remobjects and maXbox 3rd party tools.
- Sourceforge wiki suite. Source code or content included to help understanding and verify expected behavior.
- Documentation. Source code documentation
for the interface, functionlist and a lot of tutorials too.
Compatibility
- ObjectPascal and VCL. Most applications in one file (no interface section) compile and run without modifications from Pascal.
- Scripting Engine. Enables scripts to be compatible with mX3_win, mX3_clx or mX3_mac machines.
- DLL adapter. For non Pascal code there is an adapter driver that is used to use functions from a DLL in your script.
ImageFileLibBCB. Program can read and write BMP, ICO, CUR, PNG, MNG, PCX, TIFF and JPEG 2000 bitmaps. RAS, PNM, PGM, PPM, HIPS images can be loaded, but not created. More graphics support for Canvas and TPicture, provides conversion pooling for any graphic driver.
Indy Socket Support. Provides socket support capability. SMTP, POP3, URI, HTTP, FTP...
System Utils. Sysutils, Strutils, RegEx, Shell and Ini support in script and file - New binary operations.
Source code documentation. Works with XML help insight for all registered public methods, properties, events. XML/Html Documentation can be generated using the --doc Delphi compiler switch.
Use Case designer. Enables modeling of use case and image conversion to a lot of graphic formats in mX3 framework.
Indy interfaced methods. Concerning Indy, the SMTP, IdDayTime, hashCRC and message support is available, maXbox becomes a simple mailbox too, also the Indy globals with a lot of network or binary functions like to get the hostname or processid is done in mX3.
mX3 Adapters. Improvments of 64Bit, PNG, Bitmap, Canvas, MP3, POP3, HTML and Ansi/WideStrings are done. A lot of String and Math Functions are added. This allows apps to still use older scripts with the improvements of mX3.
Samples
- Examples. The examples from _1 to _150 in categories base, math, graphic, statistic, system, net, internet and games. Certification test suite for the mX3 framework. This is a script compliance test suite that also provides good examples on how to use the mX3 framework directly.
- Tutorials. Demonstrates the ease of use and power of mX3 implementations such as the Starter1 till Starter7.
Shell Execute Procedure
Unified code base is much easier to start with external shell scripts or batch code, and maintain.
mX3 now accesses and executes shell code using the new ExecuteCommand or ExecuteShell Procedure.
Enhanced Ini-File
- EXCEPTIONLOG=Y :allows to write an exception log
- EXECUTESHELL=Y :permission setting to execute a shell command or batch!
New External Libs imported
- Indy 9 and Indy 10 Globals
- ImageFileLibBCB V1.16
- EXE compressor UPX
- SynEdit 2.0.5
- niRegularExpression 1.2
- Pascal Script 3.0.3++
- VCL Delphi 2007 CLX Kylix3
Note that Unicode, PChar and 64 bit operations depends on definition files and can't supported in a general manner.
2. Release and Change Notes
New Plugin Driver Concept
The new driver will be called mX3plugin.dll. This driver supports external apps registered in mX3. This driver will only work with the version of the next 3.5 so for the meantime MP3 and POP3 is now available in /Options/..and configurable in an Ini-file.
Available Lib's
- TIFFRead.dll : read TIFF images.
- income.dll : test class.
- bds_delphi.dci : file for code completion templates.
Procedure Changes
Most apps or scripts will not be affected by this changes. However
there are a some methods, properties, events, constants and enums that
were removed or replaced with equivalent functionality from the VCL runtime lib, JEDI or Indy Globals. These changes were required for one of two reasons:
- Shift to using the more Pascal-like mX3 framework instead of the more c-like com interfaces that external libs used.
- Closer to the ObjectPascal Standard. Their is now a higher level of compatibility between the native and CLX version of mX3.
Known compatibility and bug issues:
- A couple of minor bug fixes and now includes some built in test cases. Now is now;) a TDateTime and not a string anymore. 16bit unit is deprecated, empty and consequently no longer needed. Most
of this units content has been moved to either the Sysutils or System units.
- Debuging can be disturbed either events or method handlers are in use (e.g. onClose or onIdle) or a property is not allmost common like form.style =[fsBold]. So uncomment this line to debug the code or alter comments in a line.
In Win7 or vista by using labels from TLabel set transparent:= false;
For graphics/forms concerning visibility/performance try the ProcessMessages! flag
under /Options/ProcessMessages! or the switch in script ProcessMessagesON / ProcessMessagesOFF.
Untyped Pointer Functions like move or fillchar have either be removed, renamed, or replaced by move2, fillchar2 or ExecuteThread functions. New compiletime support functions for unused symbols or misformed files.
SetFocus on a form wont't work in any case
- Voice function supported. Voice() or Speak(). These static com library linked into mX3 allows a script to speak.
New Imported and Registered Units
Using Units and Packages (without PS and VCL Components)
- 01 unit RIRegister_StrUtils_Routines(exec); (Delphi)
- 02 unit SIRegister_IdStrings; (Indy Sockets)
- 03 unit RIRegister_niSTRING_Routines(Exec); (RegEx)
- 04 unit uPSI_fMain Functions; (maXbox)
- 05 unit IFSI_WinForm1puzzle; (maXbox)
- 06 unit RIRegister_LinarBitmap_Routines(Exec); (ImageFileLibBCB)
- 07 unit RegisterDateTimeLibrary_R(exec); (Delphi)
- 08 unit RIRegister_MathMax_Routines(exec); (Jedi & Delphi)
- 09 unit RIRegister_IdGlobal_Routines(exec); (Indy Sockets)
- 10 unit RIRegister_SysUtils_Routines(Exec); (Delphi)
3. Function test review mX3 suggestions
Review the mX3 Framework Show architecture overview document.
Please recompile and test your maXbox3 with the new mX3 framework units or use the compiled version 3.0.0.6 from the download.
Review the mX3 Functions List unit and function/procedure overview document.
More Information mX3 Site on the portal with docu, link and download support.
Download Now maXbox3 from sourceforge also Linux (January 2011) and Mac Version (June 2011).