Runtime Build Notes 19.1
DataFlex 19.1 - Beta 2
Vdfvm 19.1 - Build 55
Fixed DF_DATE_4_STATE and DF_EPOCH_VALUE attributes. These were not updating the controls with their latest values. The now deprecated Set_Date_Attribute versions did this, this logic is now moved to the newer attributes.
DataFlex 19.1 - Beta 1
DataFlex 19.1 - Alpha 5
Vdfvm 19.1 - Build 52
The SearchArray function now supports passing in a start index. This results in two new overloads of the function with 3 or 5 parameters.
The language guide has the basic information added to SearchArray - needs example.
DataFlex 19.1 - Alpha 4
vdfvm19.1 build 50
Fixed a bug causing memory addresses to be shown incorrectly in the watches window. This could also crash the studio. This bug was new in 19.1.
DataFlex 19.1 - Alpha 3
Vdfvm 19.1 - Build 47
The ResizeArray function will now allocate the exact amount of requested memory. In addition, for array increases through other means (other functions), the memory allocation limit is increased and now very close to the maximum amount that Windows is able to allocate.
DataFlex 19.1 - Alpha 2
Vdfvm19.1.45
We have changed the way the conversion between horizontal dialog units and pixel units are calculated. This method is identical to the old method, which is the official way Microsoft says it should be done, but it is performed at a higher precision. The result is the rounding is much smaller. What this does is greatly reduce the difference in layout at different DPI -- specifically there will be a less clipping at 125%.
It turns out that with Microsoft's current system font (Segoe UI/9) that 100% DPI rounds up (creating extra space), 125% DPI rounds down (creating less space) and 150% rounds slightly up. If you design at 100% you've got more space than you really should have. When you move to 150% things may get clipped because it uses space more accurately, which is less than what you had at 100%. When you move to 125%, you are even more likely to clip because you are now rounding down. This change makes these differences less dramatic (there are, alas, still differences).
This makes it much easier to move between different DPIs. This also makes it easy to design at any DPI you want on your computer with the knowledge that it will look good at different targets.
The downsides are:
- This is no longer the same calculation MFC uses. It's the same calculation but MS uses the less precise metrics.
- If you designed at 100%, you now have a little less space, which might result in clipping at 100%. If this is the case, you already have real problems at 125%. Once you clean things up at 100% (or at any DPI), it works well everywhere.
We added a new desktop property, pbLegacyDialogRatio, in cApplication to control this. By default it is false, which uses the more accurate metrics. Setting this True makes things worked like they used to.
Since this is not a compiler change, any application will use this new behavior. If you look carefully you will notice that the view sizes are actually a little different at each DPI (100% less wide, 125% wider, 150% about the same).
Note
If you try this at different DPIs you must log out and sign in after any DPI change. If you just change the setting, the results you get are wrong.
Vdfvm 19.1.44
Changed SetParentDDOSwitched and ParentDDOSwitched so that the parent's file number is passed instead of the parent DDO. This is safer because the parent DDO found will the right parent. If the parent DDO is not found an error is raised (you should only use these messages properly).
Vdfvm 19.1.43
The cJsonParser its Member and MemberByIndex functions now properly support subclassing. If a subclass of the cJsonParser is used then that class will also be used to instantiate the newly created objects. This already happened but the Construct_Object and End_Construct_Object messages were not sent making this unusable.
Vdfvm 19.1.42
This is a fairly substantial change. It changes a very old DD behavior concerning switched parents. Switched means changing from one parent to another. This has always been supported but it had a strange multi-user behavior when a switch was made by an external user. Consider this scenario...
- User 1 loads order, finds an order and changes the shipping
- User 2 loads order, finds an order, changes sales person and saves
- User 1 saves
The user1 save will switch back to the original Sales person it had. It should have accepted the change from user 2. Now it does, unless user 1 made some change in parent 1 themselves (e.g., switched to another record or edit data in there).
Two new DD messages are added:
Function ParentSwitched Handle hoServerDDO Returns bSwitched
Sent to the main DD and returns true if the passed hoServerDDO has been switched.
Procedure SetParentSwitched Handle hoServerDDO Boolean bSwitched
Sets the parent switched "state" for a particular hoServerDDO. This will probably be marked as private as it must be used with great care. We need this in WebApp to resynch DDO structures.
DD_Debug.dg and WebDD_Debug.wo have been updated to show these present switched states on the misc page.
You can and should test this on Order (windows and web) by switching parents both within a view and across multiple instances. In Order you can switch SalesP and Inventory Item. In Invt, you can switch Vendor.
Vdfvm 19.1.41
- Added new altName member for struct meta data.
- cJsonObject: Now uses the altName if available for JsonToDataType and DataTypeToJson.
- cWebService: Now uses altName if available for struct members in the web service return values and parameters.
- Incremented cmd_subsystem revision number to prevent executables built with older compiler versions from running.
Vdfvm 19.1.40
- cJsonObject: Several function where accepting string key names for array functions and threating them as index 0. They now throw an error (or return false in case of HasMember).
- cJsonObject: Improved error messages for JsonToDataType. If possible it now shows an indication of the position of the problem in the JSON (in the format of: .membername.array[4].member).
- cJsonObject: Updated to the latest json-c library.
- cJsonObject: Improved number handling (no more trailing zeros, less float rounding issues).
- cJsonObject: New pbEscapeForwardSlash property that can be used to stop forward slashes from being escaped in the generated JSON.
- Rebased to windows SDK 10.0.16299.0.
Vdfvm 19.1.39
This changes modal UI logic so a modal panel can be invoked from the desktop (i.e., when no other panel is active) and, upon closing, it can keep running. This is a long standing issue.
Basically if you have code like this:
Object oModalPanel
End_Object
Send Popup to oModalPanel
Do more stuff here
The program would stop when the modal panel is closed -- when it receives Close_Panel. It would not pick up at the next line after the Send Popup.
This came up with the database login dialog, which gets invokes before any main panel. Upon completion of the modal panel, the UI level would decrease and the runtime would think it was done. In 19.0 we applied an obscure work-around in the flex code (use Stop_ui instead of Close_Panel). Now either works, although you should never use Stop_UI. When the dialog closes, it just picks up where it left off.
Vdfvm 19.1.37
Fixes a bug where constant strings over 255 characters raises an exception. This is an old bug but it never appeared in VS2017. The correct behavior is to truncate.
Vdfvm 19.1.36
Fix for the scopes memory overflow by dynamically allocating memory and increasing the space when needed.
Vdfvm 19.1 - Build 35
Temporary fix for the scopes memory overflow by incrementing the limit from 32 to 128.
vdfvm19.1 build34
7361: Comparisons with Decimal datatype might result in an overflow error