v3.0 [Nov 28, 2013]
Batch Admin, Property Extractor tool implemented
Batch Admin, Compiler tool implemented
Batch Admin, new PL/SQL Library manager tool implemented
Script, TPLSQLParser.GetIdentifierParamValue method now supports parsing named-parameters by index instead of by name
PowerSearch, speed and stability improvements
v2.0 [Dec 14, 2011]
- fixed a problem in generic_subclass using temporary filename (FAPxx.fmb) instead of real filename.
- TNSAlias list for parameter screens now returns the one from the right oracle-home.
- TNS_ADMIN is now handled correctly for connecting
- powersearch, open multiline /*...*/ comments in the searchresult messed up pl/sql highlighting
-DevCompare/DevReport, Forms11g item types showed wrong icon
- fixed Forms11g problem with saving (and in some cases loading) of PLL library modules
- scripts are now saved in unicode to allow script-comments with unicode characters
- function CommentOutPLSQL() was not commenting out
- function GetNextWord() was returning the same word instead of the next one.
- new procedure TPLSQLParser.CommentOutPLSQLLineOfToken(idx : integer);
- new procedure TPLSQLParser.CommentOutRange(iFrom : integer; iTo : integer);
- ReportsAPI, fixed X/Y/Width/Height property changes
- Fixed itemtype constants in Forms11g API
- function FileOpen() wasn't returning a file handle.
- DevCompare, fixed exception when closing the application with a DevCompare window still open
- DevCompare, fixed "out-of-bound-index" exception bug happening with some modules
- DevCompare, removed hardcoded limit of 2,000 sub-objects for each object (block->blockitems)
- DevCompare, fixed access violation when watching "new objects" properties.
- Last script engine update removed the CreateOLEObject function, added that one again.
- script engine, fixed **CRITICAL** bug inside the often used "REPLACE" function, that truncated strings > 64kb
- Changed API detection algorithm, 60/6i, 9i/10g aswell as 10gR2/11g API's can now be selected correctly
- DevCompare, fixed access violation on closing the application when there are still diff-windows open
- script engine, fixed exception propagation (raising exception inside an exception handler failed)
- Couple of improvements dealing with WindowState not working too well with maximized windows.
- DevCompare, improved the "Change-of-Position" detection algorithm.
- DevCompare, display of Program-Units is now sorted
- DevCompare, fixed item-type icons for Forms11g
- Read-Only attribute on pll-files caused Forms converter to fail and files to remain in temp-dir
- Fixed Forms11g library compilation (was using old STRIP_SOURCE=YES parameter)
- HTML-Location settings failed when trailing slash was missing
- DevCompare, save of reports compares was using wrong property names (only for *.txt files)
- DevCompare with text-files didn't show filenames in the diff-window
- added new function "procedure Generic_UnSubClass(genobj : number);" ... works with Forms11g and later
- Fixed AdvancedProperty search bug in powersearch
- Fixed Forms 6.0 bug - Check for property default value changed subclass-properties in DevCompare
- Updated oracle library to support Oracle 11g client (Forms11g uses 11g client)
- DevCompare ignored comparing char/byte length semantic in Forms10gR2
- script execution sometimes didn't close the application
- script execution sometimes didn't start (unless window got focused)
- PowerSearch now reports the whole line when "0-lines before/after" is set.
- Added Forms11g support
- Added Reports11g support
- DevCompare in edit mode didn't save changes done in the combolist-editor (for enumerated properties)
- DevCompare was wrongfully inheriting properties in the test to determine if a property is overridden/inherited/default
- Had one last shot at trying to improve PLL load errors
- Fixed memory-leak in script engine on string concatenation (s:=s+','+'xxx')
- when running script from command line the default filename for the log was empty (saved as ".log")
- fixed REP-0024 error for Reports 6.0
- fixed Forms Canvas object not being reported in the Developer Report utility
- implemented workaround for subclassing property class to an object (no applies it as an property class and not as an object)
- ReportsAPI enabled the FORMAT_MASK property to be writable
- Another fix to loading PLL Libraries in case the have missing library attachments
- TPLSQLParser.LineOfToken raised 'Index out of range' expection on lines not ending with linefeed
- Check for read-only file attribute before saving Oracle Reports files
- fixed "Memory Access Violations" in DevCompare when merging objects
- latest script engine in build 402 broke "()"/"[]" access for array properties, feature is now implemented again
- Fixed Reports problem of Fields/Boilerplates having wrong/missing style information (font/color/etc)
- Removed trial limitation to save merged modules from DevCompare
- script engine enhancements (faster and more stable)
- fixed Reports problem with "REP-0024:Property with name not found!" in reports with group-filter triggers
- new script function "CountOfString(s:varchar2; substr:varchar2):number;"
- new script function "function GetIdentifierParamType(idx: integer; Par: integer; ParName: widestring): TPLSQLTokenType;" for TPLSQLParser
- Support for Korean KO16KSC5601 character encoding fixed
- increased stability of TextBinary conversion of Forms modules
- implemented the RepGeneric_GetConstantName function
- fixed reading/writing of D2RP_TEXT property in Reports Boilerplates (text sections)
- owerSearch aborted search (silently) when a file in the list of files to search did not exist anymore
- added object-path to DiffCompare/Property window
- Script engine fix for "Set Operations"
- Script engine fix for assigning a functions return value to a variable which is also used as input parameter
- Script engine enhancement for call-order of unit functions depending on USES clause
- Another script engine fix for improved default parameter expression parsing
- couple of fixes to the search-box (unique MRU list, etc)
- PowerSearch in SQL files(sql/pkb/pkd/fnc/prc) did ignore the PL/SQL Comments option.
- PowerSearch replace in record-group queries wasn't working when not connected (tried to reparse column information)
- script engine fix for using "Default parameters" in procedures/functions
- ctrim/rtrim/ltrim functions now work with a string of trim characters
- Script engine fix: default parameters was not working inside "UNITS"
- license check in FormsAPI Master COM/COM+ API was broken
- Script engine fix: passing string-by-index to function expecting char was broken
- another stability enhancement for script structure (still occasionally raised exceptions after last fix)
- PreviousEOS/PreviousSOL text-parsing function returned position one character off.
- Main window is now showing the Forms API version in the title
- ObjectLib_FindObjByName function now also supports finding library-tabs, not just objects within them.
- Script engine fix: boolean evaluation fixed and improved with full conditional evaluation support
- Script engine fix: lots of varchar/widechar/string typecasting problems resolved
- Script engine fix: exception handling causing "listindex out of bound" in some cases
- Script engine fix: passing around indexed properties of objects sometimes caused wrong return values
- Script engine fix: handling of multi-indexed properties (like TMemStore.Cells property) works now
- exception handling is now logging user-defined exception class names properly
- introduced support for "class" types in script structure view
- enhanced stability of script structure (occasionally raised exceptions)
- added new setting option to override code snippets/quickcodes file location
- Implemented workaround for API_ConvertFile doesn't free memory,#4785
- dropped support for dates in the to_char function because sometimes numbers got returned as date-strings
- new command line parameter "/SHOWSCRIPTLOG" to show current script execution log
- FormsColorAPI was using API_ConvertFile that caused memory leak (known bug #4785)
- DevCompare was causing problems with inherited objects, making them unloadable after saving.
- Scriptengine, the "for...downto" loop command was not parsing expressions for upper/lower bound
- Scriptengine, "IN..SET" operations were not working properly
- Scriptengine, VarType function wasn't working
- DevCompare has now a read-only mode (disabled editing/merging) under Tools/Settings/DevCompare
- DiffEditor had some problems with displaying correct text-diff results in certain combinations
- DevCompare failed with access violation on empty boilerplate text items
- fixed, Legacy Forms50 API support was broken
- fixed, Legacy Forms60 API did not allow subclassing object
- DevCompare/Report did not compare/report Property Class Properties
- resolved issue of running scripts in two (or more) separate instances of FormsAPI Master at the same time
- Fixed another 3 bugs in script engine exception handling. TRY..EXCEPT now allows extended error handling like documented
- Enhanced raising user defined exceptions, can now supply an error code in RaiseException/GetErrorCode
- Fixed another bug in TMemStore LoadAsCSV truncating the lead 2 characters
- TMemStore.Cells propery returned wrong cell-value, added workaround CellsByName if you need to use column name as column index.
- TMemStore SaveAsCSV/LoadAsCSV functions were not working correctly
- scripting engine can now be extended with plug-ins
- PVCS API in scripts is now working again in V2.0 (converted it to a plug-in)
- fixed exception handling for raising user defined exceptions
- Scripting engine, Compile time speedup by a factor x3
- Advanced PowerSearch searches on boolean didn't work (true=false)
- Scripting now supports arrays initialization with constants "CONST C_TEST : array[1..4] of integer = ( 1,2,3,4 )"
- added new AddKeyword, AddOperator, AddDatatype methods to TPLSQLParser class.
- added "$" and "#" characters to list of valid identifiers characters in the TPLSQLParser class
- DevCompare, fixed "missing d2fp_mnu_param constant" exception
- Added new script function GetDirList
- DevCompare security confirmation for saving files with missing attached libraries works opposite (yesno)
- DiffWindow/PropertyViewer now remembers window sizes
- Scriptengine fix, accessing characters in a string by index
- Scriptengine fix, passing dynamic arrays as parameters was broken
- Scriptengine fix, PCHAR data type was broken
- Scriptengine fix, pointing to characters in a string should have been type compatible with PCHAR
- new functions to deal with DLL libraries (LoadLibrary,FreeLibrary,GetProcAddress)
- DevCompare was erroring with oracle forms menu modules
- fixed some Unicode problems with Item_GetListElement/Item_SetListElement/MenuItem_AddRole/MenuItem_GetRole
- IgnoreCase option wasn't handled properly in DevCompare
- fixed script engine bug with passing parameters of type "VARIANT".
- fixed script engine bug with multidimensional arrays.
- fixed script engine bug with calling "TYPE" functions.
- PowerSearch neglected the "Ignore Comments/Strings" option in text files
- fixed problem with multiple units in "USES" compilation.
- fixed problem in Blendout_PLSQL_Comment function with open strings over multiple lines
- fixed problem with open strings over multiple lines in PowerSearch when "Ignore Comments" was selected.
- treat as binary was not working in PowerSearch
- fixed problem with Script Structure and '(' and ')' strings.
- Improved resource management to lessen the EOutOfResources exception
- fix endless loop in Replace_PLSQL_WORD on replace with string that contains searchstring
- fixed exception propagation from within threaded calls (like for example API_LoadModule)
- DiffWindow was setting the property in the wrong module when applying changes
- fixed subclassing problem when module has been loaded from a temporary copy
- Replace_PLSQL_WORD function was still broken
- TPLSQLParser interpreted '(*' as multiline comment start (which is ok for PASCAL but not PL/SQL)
- fixed Find/Replace_PLSQL_WORD functions
- log file from command line can now be suppressed by using /NOLOG parameter
- Fixed object library compare bug (tree display causing access violation with library tab objects)
- fixed TOraSession, should now return Unicode data properly when used with an oracle OCI 8i client (and later)
- New function UTF8ToWide/WideToUTF8 to convert to/from UTF8.
- Fixing trial limit bug on saving Forms modules
- Enabled missing Generic_Create function support for Forms50/52/60
- Number fields on parameter screens lost values on script re-runs
- fixing the ResizeScript compilation bug.
- DevCompare HTML saves didn't align multiline source code properties correctly
- Printing from DevCompare didn't work in Microsoft IE7
- DevCompare/Report and the PowerSearch file/directory edits added double-quotes around the filenames
- fixed command line support for running scripts
- PowerSearch in directories did not match file extensions with different upper/lower case characters.
- fixed FormsAPI context thread problems, broke functions like "Font_StringSize" and some others
- saving DevCompare results didn't work (filename wasn't passed in correctly)
- added support for the CONST procedure parameter syntax
- another couple of compile time enhancements
- improved script editor typing speed
- fixed bug with nested try..except
- improved script-structure viewer - now shows more information
- script-structure viewer now highlights current node depending on editor position
- added WideLineSeperator (character #$2028) support to the TPLSQLParser class
- fixed TOraSession for oracle connections was using the default home instead of the Forms home
- SetLength function for strings was broken
- some changes to make running FormsAPI Master on a server install smother
- fixed memory leak with "STRING" data type
- full support for script defined object classes
- Removed "Beta" from titles/captions
- code-sense was broken for classes without a ":"
- fixed bug with UNITS scripts not compiling correctly
- "Treat as Binary" option in PowerSearch caused missing search results
- script syntax now allows "()" and "[]" to access array properties
- couple of speed enhancements for script compilation
- fixed missing comment open tag "{" when alone on a single line in the script editor
- fixed normalize_cflf function - using normal CR(#13) and LF(#10) character instead of WideLineSeperator(#8232)
- Increased the maximum stacksize to fix the EStackOverflow exception in DevCompare
- fixed missing return value from the TRegExpr.Match property
- added another couple of functions to the TPLSQLParser class (load/save/FindEx regular search expressions)
- new functions NormalizeTabs, BlockIndent, BlockUnindent
- fixed LogAdd function, not anymore ignoring spacing of the first line and handling tabs correctly
- fixed DevCompare exception when opening the Diff-Window
- fixed bug introduced with 372 that breaks function declarations
- GetPreviousWord function returned wrong position for next search
- fixed sl.strings[1] := sl.strings[2] bug when assigning indexed properties directly
- fixed PropExplorer/DevCompare pop-under message dialogs (on library/reference module missing)
- added new TPLSQLParser class (to easy parse and manipulate PL/SQL Code)
- fixed search dialogs in editors - regular search engine used made searches containing unescaped characters like "(.[\" tricky.
- implemented the color-settings page to configure the highlighter for scripts
- fix access violation with opening script from second instance
- fixed another couple of records in arrays bugs.
- add autocomplete for d2fp/d2rro/etc constants
- check that all screens work with 96/120 DPI (small/large fonts)
- now showing d2fc/d2rc constants in PropertyExplorer instead of just number values
- improved structure view further - had problem with "var" parameters parsing
- now checking for code after the last "end" of the main program begin..end block and display an error if anything found!
- translated some more of the file routines to be able to use Unicode in filenames
- RemoveDirectory has another optional parameter to be able to delete directories with files
- fixed rtrim/ltrim/ctrim functions not returning anything
- fixed the "like" function, no more access violations.
- when focus was on the page control search/replace didn't work
- removed double quotes in file/path names on parameter screen (happened when they have spaces in the path/file)
- integer values on parameter screens did set the wrong min/maximum value
- LogAdd function was trimming left side of messages which made intention of text somewhat a problem, fixed that
- added "LongInt" and "real" datatype.. it's the same as "Number/Integer" and "Float"
- fixed internal AdjustLineBreak routine, affected LogAdd calls with "OutOfMemory" error and unexpected script termination
- fixed bug with default parameters not working with varchar2 data types
- fixed bug with "continue" function
- fixed memory overwriting bug with arrays
- fixed bug with variant comparison
- implemented old style "USES" unit syntax
- improved script structure tree view for UNITS
- fixed bug with varchar2 by index accessing (caused by Ansi/Unicode mixing problem)
- fixed bug with "program" keyword causing "Internal Error" on compiling in certain combinations
- added all missing example scripts and checked that they all compile and run
- Added "Assigned" function
- bug with exception handling scope inside scripts fixed
- made some improvements to the find function, can now search up and down (F3 and Shift+F3)
- Bugs with the "WITH..DO" construct in the script engine fixed
- implemented old style "forward" declaration of functions, no need to repeat parameters on implementation
- fixed problem with pl/sql style variable declaration without the ":"
- the "find" function is now implemented in practical all "editor" windows (Script editor/Difference viewer/PowerSearch/etc)
- the find function understands wildcard searches (with the usual "*" and "?" placeholders)
- implemented "Replace" functionality from the toolbar/menu
- fixed "List Index out of bound" exception on code completion
- code completion now also works for class names, not only variables of classes
- Added XMLNode functions to XMLParser tree
- added "free/classname/classtype/inheritsfrom/classparent" to all objects and help file
- added the "||" string concatenation feature to the script engine
- GetError function has now an optional parameter to specify how much detail you want in your error message
- included a bunch of configuration settings for the editors
- fixed Property_GetConstValue returning wrong values
- fixed double quote compile problem
- rpad/deletechar problem is now fixed, char gets automatically converted to widechar if needed.
- Added Move, IndexOfObject,CaseSensitive, LoadFromfile, SaveToFile to TStringlist
- fixed header definition of Random function to old V1.0 definition
- missing StrToInt, FormatDateTime,UpperCase,LowerCase functions added
- Fixed exception that gets raised when exiting/closing a script window while it's running
- empty multiline comments now compile correctly
- fixed if..then compile problem with single line statements
- fixed compile problem with recursive functions
- add tree entry for every enumeration
- fixed bug in using enumerations inside records
- fixed problem with passing records as parameters to procedures/functions
- fixed variable scope problem, global variables are now not anymore accesible from standalone procedures/function
- fixed script structure tree problem not parsing CASE..END correctly
- Click in script structure tree now centers the line
- copy to clipboard from Script Functions tree and from ErroPanel implemented
- Script-editor window display state is now saved/restored for every new window
- Replaced V1.0 help file with the latest V2.0 one
- FormsAPI Master COM/COM+ object updated to use the new V2.0 API.
- fixed IntToStr function
- enabled drag'n drop from script functions and code snippet trees
- linked script functions tree to the help file
- fixed Ord / Pred functions not useable in subroutines problem
- fixed Screen DPI Font problem in the Settings dialog for user running in normal 96 DPI font size
- fixed compiler bug with string comparison (=,,>,<)
- fixed compiler bug with string+char concatenation
- fixed compiler bug with using properties directly of returned objects ( ps.parambyname('MyString').isnewgroup := true; didn't work)
- RPad/LPad/etc functions (any function with default value for a widechar parameter) have been fixed with a temporary workaround
- ReportsAPI now supports jsp/xml reports files
- new TInifile class to handle Windows INI files for storing settings
- new TStringBuilder class to concatenate large strings in the fastest way
- new TXMLParser class to handle reading/writing XML files
- new TMemStore class to store and manipulate data in grid arrays
- Change to open scripts in the same instance
- DevReport now also reports property inheritance
- Fixed script suspend/resume/terminate buttons now work without access violations
- Enabled printing from property-show windows
- OLB support for PropertyExplorer
- Properties are now sorted by name in DevCompare, DevReport, Property Set Manager,#2037
- PropertyExplorer added coord info object
- DevReport remove of objects with no reported properties
- DevReport enable remove of inherited/default props
- Scripts are not anymore limited to 200kb, #3569
- Added list elements to PropertyExplorer
- changed AddParam to a function returning a TParamField
- ":" is now fully optional in variable declaration
- new InitCap function, to uppercase initial characters in strings (like for example in names)
- new CurrentYear function
- new AbsFloat function
- new date/time functions are now CurrentDate/CurrentTime
- new date/time is now a data type
- changed fileread,filewrite to string only
- new function blendout_plsql_strings(s : varchar2) : varchar2;
- new "declare" keyword added for starting a variable definition block
- new GetUnquoted function
- new function AskString(prompt : varchar2; default : varchar2) : varchar2;
- new function AskPassword(prompt : varchar2; default : varchar2) : varchar2;
- new function AskMemo(prompt : varchar2; default : varchar2) : varchar2;
- new function AskNumber(prompt : varchar2; default : number) : number;
- new function AskFloat(prompt : varchar2; default : float) : float;
- new function AskDate(prompt : varchar2; default : date) : date;
- new function AskDirectory(prompt : varchar2; default : varchar2) : varchar2;
- new function AskFilename(prompt : varchar2; default : varchar2; filetypes : varchar2) : varchar2;
- new function AskSaveFilename(prompt : varchar2; default : varchar2; filetypes : varchar2) : varchar2;
- DevCompare - fixed bug with whitespace causing out of memory errors
- new GetCurrentWord function;
- new DeveloperCompare options
- fixed file locking of license file can loose license key
- fixed ReportsAPI time parsing is 1-24 instead of 0-23 for hours/minutes/seconds
- DevCompare edit/merge support for Oracle Reports (stage-1)
- DevCompare keyboard navigable tree
- Get_PLSQL_Param function failed when not called with a parameter
- change of trial limit, make version depended 30days per build
- change of trial limit, allow a weekly less limited license for tests