| Previous Next | Contents |
VSB,HSB converted to use new Splitter object.
TCTL,TO Support for new ToolControl and ToolButton objects.
CPro.Group duck out if we try to look for a parent object which is not there. Can happen on a stand-alone toolcontrol in test mode.
CPro.Accel tolerates blanks in accelerator strings. Adds togglekeys as a global to allow Germans to use STRG instead of CTRL etc.
Class.RGN adds TopForm to allow application to get the preferred tab to the front. Class.TSF reports back to its region when a tab is selected so that the region can maintain the Topform property correctly.
CPro.Post fails quietly if you post to a non-existent object.
Designer.MatchSeln undo works correctly when a selection of several objects is changed using the align tools. Designer now only saves the undo buffer once at the start of the entire operation.
CPro.Refresh argument syntax changed to make it clear what is a forced refresh. Otherwise CPro.Wake was effectively forcing the refresh which had bad side effects.
CPro.MakeAsleep makes form without showing it or refreshing any controls. Useful as a means of making heavy dialogues in advance while the user expects a delay.
#.Class.FM.Show runs PostCreate even if the form is set to stay hidden.
#.Class.TCTL.onUserResize adds support for new User property Newline which allows the application to monitor/set the state of each toolbar. Would be nice to support Index as a user property also, but currently Runtime only as there are no events to tell us it changed! Use GetIndex to check it.
Accelerators
#.CPro.Accel logs all accelerators in global table. This allows applications to make a rapid check if an accelerator is already used (custom menu defns etc).
#.CPro.ListAccelerators fm returns a vector of accelerator keys (in standard format SHIFT+CTRL+D) to allow for checking or review. fm may be null, in which case all current accelerators are listed.
{fm} #.CPro.IsAccelFree Ctrl+X returns a boolean scalar indicating if that keycode in in use by the application. If {fm} is omitted, all forms are checked. Either the text form or the numeric keycode may be passed as argument.
{fm} #.CPro.RunAccel key simulates the user pressing the given key combination, either as Ctrl+Space or 32 0. Returns a shy boolean which is 1 if the key combination was logged in the table of currently used keys. If {fm} is omitted, the first hit in the table is run; applications must not rely on this!
CPro.ActionHandler If the handler function returns 0 this is an implicit rejection of the event. Allows syntax like ¾onKey ¾ in a keystroke handler, or ¾2¬#.Win.Ync 'Save changes to ...' on the CL event.
Class.RGN a few more workarounds for the problem that when you scroll things around in a co-ordinate system, rounding gets a hold and the region shifts under you by the odd pixel. Now it twitches a little, but at least it always resets itself back to where it was supposed to be!
Class.SB simple statusbar can now hide and show itself on demand (new runtime property Visible) and also automatically adjusts the positions of any other objects mentioned in the groups in its Controls property. Similar to the TCTL and the splitter bars.
Designer.SetActive allows bulk update of properties common to all selected objects. Use with care it is possible to remove styles by selecting a collection of objects with incompatible style lists! However it is so useful to be able to set Caption at side etc. that this is left open.
Designer.Patch only applies snap to grid to the property (posn/size) which you have changed. In the case of size, only snaps the dimension you changed (important for things like HSEP which can easily get snapped to zero thickness otherwise)
Designer.PCopyMe copy and paste of properties now allowed. Use the right- button menu on any object to clipboard any subset of non-default properties. These may be pasted into a single object from its own RBM, or if several objects are selected, use the Edit submenu from the form to paste the (valid) properties into all of them.
Extended support for class-specific functions property types string and stringlist (and their synonyms) can invoke a specific service function from the drilldown button shown at the right of the edit field in the designer. Simply set the property as myprop : string foo this will run foo (passing it the string, and expecting a string result) from the ... button for string types. For stringlist, expect and return a vector of text vectors. The shipped AC class illustrates the effect for the Accelerator property which can now be entered by simply pressing the appropriate key combination.
Designer adds support for the menu key in Windows95. All properties are now shown on the right-mouse menu, which now allows you to work on full-screen forms with the property-watcher rolled up most of the time. It also records its rolled-up state so next time you design something it comes back as it was.
CAL simple support for the Calendar object. Uses the same ordinal date as in the Date class, with the optional adjustment for Excel dates.
CPro.Build runs the code from Initialise as it is easy to forget to run this if you have moved Causeway (for example) into SE. Now you can just relocate the namespaces, set SE.Designer.causeway and Build.
Splitters Controls property now a Stringlist which it should have been all along. Compatibility code in Create to handle existing splitters redesign and resave any forms with these ASAP to bypass this. The property will appear in the Property Watcher as Expression,left,right overtype with left,right without the quotes.
Class.TR.onItemUp IO behaviour updated propagation of selection was not working correctly in IO=1 any more. Probably a long-standing Dyalog bug in the way index-origin interacts with NQ which they have fixed.
CAL updated with Attach and Active included. Requires DSS of 7th October or later to run without error.
Picture-strip editor simple bitmap editing tool to assist in creating the artwork for imagelists (tree and listcontrols) and tool buttons.
========= Release to Web site 10th October 1999 ===========