This release adds several nice refinements to the procedure editor, performance enhancements to the data sheet, and dozens of bug fixes, including resolving several long-standing issues. All known problems relating to hiding/showing database fields have been resolved. All known problems with single stepping and debug statements have been resolved.
Undo in the Procedure editor window is now correctly linked to the database undo manager. This means that editing the procedure now makes the database “dirty”, and auto-save, etc. works correctly even if the only changes that have been made were to procedure code.
Fixed debug breakpoints and single stepping.
Added procedure context menu (right click in procedure), with items for looking up in Panorama Help, setting and jumping to marks, typing in fields, forms and procedure names. New in Panorama X you can open procedures in the same database without using the View menu – just right click, then choose from the Open Procedure submenu. Or if you select a procedure name, you can open it directly – just right click and choose Open <Name of Procedure> from the menu (this option is only available if you have selected the name of an actual procedure in the database).
Added Mark menu to procedure editor window. As it did in Panorama 6, this menu allows you to quickly jump to specific spots in a long procedure. Unlike in Panorama 6, when you ask it to create a new mark it doesn’t prompt you with a dialog, instead it creates an untitled mark that you can then type in whatever name you want. The Mark menu is also available in the procedure context menu (right click).
Fixed problem that sometimes could cause a database to be saved without any open windows.
Fixed problems (hang) that occurred when automatic calculations were performed if there are hidden fields in the data sheet.
When hiding the current field, Panorama X now correctly keeps track of which field is the current field.
Adding a field to the end of a data sheet is now nearly instantaneous, even if there are hundreds of fields.
Deleting a field is now instantaneous, even if the database contains hundreds of fields.
Inserting/rearranging fields is now 10x-100x faster for databases with large numbers of fields.
Added new statements and functions that allow a program to perform automated editing of a procedure: ProcedureInsertText, ProcedureSetSelection, ProcedureSearch, ProcedureSearchExact. ProcedureSearchNext, ProcedureSearchNextExact, InsertNewProcedureMark, ProcedureInsertFieldName, info(“proceduretext”), info(“procedureselectedtext”), info(“procedureselectionstart”), info(“procedureselectionend”), and info(“procedureselectionlength”). Note: These statements and functions were used to create the procedure context menu.
Subroutine parameters now work reliably with fileglobal variables and fields, even if the active database has changed. To make this work, parameters are now evaluated immediately in call statement, instead of waiting until parameter( function is used (this is the same way Panorama 6 worked).
When opening a database, Panorama X will now always open with at least the data sheet, no matter what (even if a database was saved with no windows open). Now the only way a database can open with no windows is if you use the opensecret statement.
Panorama now correctly auto-senses UTF-16 when importing text.
Fixed problems that occurred when deleting the last (rightmost) field in a database.
Implemented the DropFromFinder and DropImagesFromFinder statements.
Fixed Drag Receiver object so that it correctly allows all file types to be dropped on object if the Extensions option is empty.
Fixed problems relating to pasting styled text into a procedure.
Fixed low level routine that did not always handle unselected records properly. This could have caused an unselected record to become the current record. It may have caused erratic behavior or even crashes, though I was not able to duplicate that.
Fixed formulafill so that it works correctly with numeric fields and zero values.
When convering a Panorama 6 Scrolling List object to a Panorama X Text List object, it now correctly converts a scan database of <Current Database>
to ~
.
The fileexists( function now correctly recognizes that a package is a file, not a directory. This includes Panorama X databases, applications, etc. (Though it will also be recognized as a folder by the folderexists( function.)
Fixed the crtolf( function (it was incorrectly converting to carriage returns instead of linefeeds).
Fixed the cardvalidate statement (the function already worked correctly).
Fixed the DictionaryValueExists statement, it didn’t have the right number of parameters declared, and wasn’t returning the result into the correct parameter.
The Formula Workshop can now be called with a parameter for the initial formula, for example openwizard "Formula Workshop","2+2"
. This feature is used by the procedure context menu.
The Open View dialog can now optionally be called with a parameter that specifies the initial search text. This is used by the procedure context menu.
Improved address and phone number checks in the Site License wizard (to cut down false negatives).
Hundreds of documentations corrections (this time, the majority came from Michael Kellock – thanks Michael!)
Fixed Panorama Help MarkDown generation so that page links will work no matter what combination of upper and lower case is used, for example RectangleTweak( is now ok. This one change fixed hundreds of broken links in the documentation.
Brand new features implemented in this release (features that were not included in Panorama 6):
Features implemented in this release that work differently than they did in Panorama 6.
Features implemented in this release that work exactly the same as they did in Panorama 6.
ALL features that were added or changed in this release:
See Also