| Previous Next | Contents |
Class.TR adds Expanded property to allow application to track and reset how the nodes of a tree are opened. Boolean vector matching the number of items in the tree.
Class.FM implements minimum size on the form. This works well when we are in show contents while dragging mode it would still be good if APL implemented this at the interpreter level! Logged as good idea by Dyadic. Note that it MUST NOT touch the message if the proposed new size is OK. If it sets it to the value it already has, maximise is prevented!
Class.SUB onFocus behaviour removed. It had the bad side-effect that clicking in a specific field of a subform in a region always kicked the focus to the first editable field. Behaviour was incorrectly copied from main form which only does this on creation.
TreeView added to the list of controls which are fair targets as the place to set focus to when the form is first shown.
Class.VSB/HSB both work OK in full drag mode now the managed objects are moved as you drag the bars around. A bit flickery it would be good to have the option to turn this off and use a conventional splitter even when the user has set show contents while dragging. See MS Outlook-2000 which behaves like this! Suggested to Dyadic 20th Jan by email.
Class.LV adds Selection to be compatible with the old LS. Same rules apply do not use both the Selection and Indices on the same object.
Class.HSB/VSB/TCTL ensure that the resized object is in Coord Pixel before we get its current position/size. Otherwise charts (CH and PS) behave badly on splitting. It would be good if the chart could sense the splitting and only redraw once at the end! It just about keeps up on a 400MHz PII machine!
Class.PS flips mouse cursor to vertical arrows over editable series. Generates a CDOVER event here (as per CDSTART) so the application can reject and not have the cursor changed. Adds SetSeries function to allow the series to be updated on the fly.
Class.LV ImageIndex added as a new Runtime property so that it can be quickly changed without a rebuild of the whole table (in report view). Intended for use where the image shows the state of the data in that row, cf Outlook.
Class.TCTL sets ShowCaptions 0 on creation (may get updated in Refresh) which cures an odd problem with repositioning other controls on first creation.
Class.LV,TR drag-drop support added. New events allow full control over which items can be dragged off, and which target items accept drag-drop. Drop-highlighting is managed automatically, and the default is to accept the dropped object. The sample dialogue drag in #.QA is a fairly complete test, with selective drag between two trees and two listviews.
Class.HSB.VSB new property Hidden added. this is remarkably useful, as it means you can make a splitter whose sole purpose in life is to constrain other splitters! See the split example in #.QA to see what I mean. Also you can move them under program control which can be handy in switching form details on and off. Survive being told to move other spitters quite futile actually as they move themselves!
Class.TCTL Reposition beefed up so it copes with moving splitters (even hidden ones) about. Look hard at MS Outlook (hide/show the toolbar) to see why this is necessary!
Class.AN redone to be splitter-friendly! Was leaving its recess behind!
Class.FM new TopLevel property added. This allows forms made from actions on other forms to be true free-flying forms which can be obscured by the logical parent. Note that you must use CPro.Wait rather than DQ '.' to launch the application as this clears any pending updates before entering the DeQueue. Otherwise the Causeway refresh queues can become stranded outside the DeQueue and the refresh mechanism will appear to stall.
#.CPro.GroupMember new service function (see drag-drop handlers). Returns a boolean result to detect if a control is a member of a group or list of groups.
Class.VSB/HSB add position as user property Where so application can set/track it with a variable. Main use is in restoring the splitters back in the right place on reloading the application, having saved the previous set in the Registry on exit.
Class.FM Topform works correctly for tabbed subforms as well as MDI children.
Class.MRU now offers the alternative of using the Registry rather than an INI file section. New Storage property changes the interpretation of the specification from INI file name to Registry path, relative to HKEY_CURRENT_USER.
CPro.Zap resets _ctl to 0 as otherwise some new object could try and be a child of a zapped form! Hopefully solves a strange problem at Adapta.
Designer.Drill locals edit box was killed by locals named value for example. Bizarre Dyalog behaviour you must WC 'Edit' ('Text' old) ... here.
#.Class.PlaceButtons now left-aligns Radio and Combo groups 12 pixels in from the left edge regardless of the available width. They are still vertically centred and spread as before. The 12-pixel offset is reduced if things get very crowded! Both radios and checks now add a space at each end of all the labels to get a slightly bigger gap between the button and the label.
#.Class.TO splits tips into multiple lines at ; characters.
#.Class.TO supports standard CPro menu definitions as a menu property for use by buttons with the dropdown style.
#.Class.LV new Confirm event when user presses <enter>. Really could be doubled on ItemDblClick but we cannot queue this.
#.Class.SUB adds Visible to allow easy toggling of alternative subforms. This allows fast switching of alternatives, e.g. for something like Outlook where you can switch the preview pane in and out from the toolbar.
#.Class.PS bug in Refresh was causing 1 (i.e. the page number) to echo to the session when viewing multipage charts! Fixed.
#.Class.PS new CDXY event gives the (x,y) location of the mouse when it is over a region bounded by chart co-ordinates. Allows the application to use the same tracking style as PostScrp.View has.
#.Class.SA now supports Visible property so you can show/hide it and have any managed controls automatically adjust to the new available space.
#.Class.NOSE allows application to modify the file-name by assigning it to ¾ as the application might want to force the correct extension on the first SaveAs of a new file.
Win.Fbx was supposed to strip TRAILING blanks from the file path, but actually compressed all blanks which made paths like Program Files fail to work. Fixed.
Class.PS RMM event added. This is effectively onBeforeMenu so if you catch it then REJECT it the standard menu is suppressed. It just passes on the normal mouse message use the (x,y) values with PostScrp.FindSeries or PostScrp.FindHotspot if you want a specific menu for headings etc.
CPro.Substitute tolerates dynamic functions in expressions in either the event-action table or data expressions. See QA.dfn for some fairly mad examples designed to break the logic.
======================== Released to Web as 1.4g ===================