...
I'll take a look at reg-free COM support next time, but they key point is that as with touch support, this functionality is there automatically, with the proviso that the COM object is in a side by side assembly. That is, the COM object's DLL must have an appropriate manifest file, so I imagine there may be some growing pains as Clarion developers attempt to deploy a variety of COM objects with their apps.
Release notes
The release notes are as follows - I'll touch on a number of the release note points as I look at the changes in the installed files.
Panel | ||
---|---|---|
| ||
|
Install program changes
During the install process I noticed this window, which I don't recall seeing in 9.0:
...
This isn't new functionality - in Clarion 8 you can already use the /CONFIGDIR switch, but it's nice to see the install program updated to set that switch up for you.
Installed file changes
On the binary side there are no doubt numerous changes, but it's difficult to tell what they are from a file comparison. There is however a new executable called ClaRunExtSetup.exe.
...
There is a new ShowOutputProgress property on PrintPreviewClass which is used to optionally hide the progress window.
WindowResizeClass gets two new methods: WindowResizeBegin and WindowResizeEnd.
New touch source files
There are a number of new source in this 9.1 release. Three of these are for touch support:
...
- IGestureResponder
- IPointerResponder
- ITouchNotifier
New H5 source files
There are no H5 templates in this release, but I'm told good progress is being mode on the H5 project. There are however a number of new H5-related source files:
- H5BROKER.CLW, H5BROKER.INC
- H5CLIENT.CLW, H5CLIENT.INC
- H5CNTRLS.CLW, H5CNTRLS.INC
- H5EVENT.CLW, H5EVENT.INC
- H5FILES.CLW, H5FILES.INC
- H5HTML.CLW, H5HTML.INC
- H5HTTP.CLW, H5HTTP.INC
- H5JSL.CLW, H5JSL.INC
- H5LAYOUT.CLW, H5LAYOUT.INC
- H5REPORT.CLW, H5REPORT.INC, H5REPORT.TRN
- H5SERVER.CLW, H5SERVER.INC, H5SERVER.TRN
- H5SINK.INC,
- H5STD.CLW, H5STD.EQU, H5STD.INC
- H5TXTOUT.CLW, H5TXTOUT.INC
- H5UNAUTH.HTM
- H5WINDOW.CLW, H5WINDOW.INC, H5WINDOW.TRN
If you're looking to put some meat on those bones, here's the current class list:
Code Block |
---|
BrokerClass CLASS(WebDataSinkClass)
BrowserManagerClass CLASS
HtmlClass CLASS(TextOutputClass),TYPE
HtmlFontClass CLASS,TYPE
HtmlItemClass CLASS,TYPE
HttpBaseClass CLASS
HttpClass CLASS(HttpBaseClass)
HttpPageBaseClass CLASS
HttpPageBrowserClass CLASS(HttpPageBaseClass)
HttpPageJavaClass CLASS(HttpPageBaseClass)
JslEventsClass CLASS
JslManagerClass CLASS, TYPE
LayoutCellClass CLASS,TYPE
LayoutHtmlClass CLASS,TYPE
RangeClass CLASS,TYPE
ReportImageClass CLASS(ReportItemClass),TYPE
ReportItemClass CLASS(HtmlItemClass),TYPE
ReportStringClass CLASS(ReportItemClass),TYPE
ShutDownClass CLASS
SubmitItemClass CLASS
TextOutputClass CLASS,TYPE
WebAreaClass CLASS(WebControlClass),TYPE
WebButtonClass CLASS(WebControlClass),TYPE
WebCaptionClass CLASS(WebAreaClass),TYPE
WebClientAreaClass CLASS(WebAreaClass),TYPE
WebClientManagerClass CLASS(WebClientManagerInterface)
WebClientManagerInterface CLASS(WebDataSinkClass)
WebControlClass CLASS(HtmlItemClass),TYPE
WebControlListClass CLASS,TYPE
WebDataSinkClass CLASS
WebFilesClass CLASS
WebFrameClass CLASS,TYPE
WebHotlinkClass CLASS(WebControlClass),TYPE
WebHtmlButtonClass CLASS(WebButtonClass),TYPE
WebHtmlCheckClass CLASS(WebControlClass),TYPE
WebHtmlCloseButtonClass CLASS(WebControlClass),TYPE
WebHtmlEntryClass CLASS(WebControlClass),TYPE
WebHtmlGroupClass CLASS(WebControlClass),TYPE
WebHtmlImageClass CLASS(WebImageClass),TYPE
WebHtmlItemClass CLASS(WebMenuBaseClass),TYPE
WebHtmlListClass CLASS(WebListClass),TYPE
WebHtmlMenuClass CLASS(WebMenuBaseClass),TYPE
WebHtmlOptionClass CLASS(WebControlClass),TYPE
WebHtmlPromptClass CLASS(WebControlClass),TYPE
WebHtmlRadioClass CLASS(WebControlClass),TYPE
WebHtmlRegionClass CLASS(WebControlClass),TYPE
WebHtmlSheetClass CLASS(WebControlClass),TYPE
WebHtmlStringClass CLASS(WebStringClass),TYPE
WebHtmlTabClass CLASS(WebControlClass),TYPE
WebHtmlTextClass CLASS(WebControlClass),TYPE
WebImageClass CLASS(WebControlClass),TYPE
WebJavaListClass CLASS(WebListClass),TYPE
WebJQueryButtonClass CLASS(WebControlClass),TYPE
WebJQueryCloseButtonClass CLASS(WebHtmlCloseButtonClass),TYPE
WebJQueryListClass CLASS(WebListClass),TYPE
WebJQueryStringClass CLASS(WebStringClass),TYPE
WebJQueryToolButtonClass CLASS(WebJQueryButtonClass),TYPE
WebListClass CLASS(WebControlClass),TYPE
WebLiteralClass CLASS(WebControlClass),TYPE
WebMenubarClass CLASS(WebAreaClass),TYPE
WebMenuBaseClass CLASS(WebControlClass),TYPE
WebNullControlClass CLASS(WebControlClass),TYPE
WebPageClass CLASS(WebControlClass),TYPE
WebReportClass CLASS,TYPE
WebServerClass CLASS
WebStringClass CLASS(WebControlClass),TYPE
WebToolbarClass CLASS(WebAreaClass),TYPE
WebWindowBaseClass CLASS(WebControlListClass),TYPE
WebWindowClass CLASS(WebWindowBaseClass),TYPE |
There have been some minor changes to the InternetConnect classes but I don't know if they're related to the H5 project.
The JSON class has a few new methods for string parsing.
Other source changes
There are some new properties:
Code Block |
---|
PROP:Locale EQUATE(7A76H) ! integer: SYSTEM or FILE LCID value
PROP:Codepage EQUATE(7A77H) ! integer: SYSTEM or FILE codepage value
PROP:NoFont EQUATE(7A78H) ! boolean:
PROP:TouchInterface EQUATE(7A79H) ! integer: get the interface to touch input |
The QuickXMLParser (actually XMLParser) now has some debugging methods.
I've never used the XMLParser class, but the source comments suggest that this is a SAX-type parser that steps through the XML and fires an event for each node it encounters:
Code Block |
---|
! CLASS: XMLParser
!This is a none validate XML parser
!It is fast and use very low memory
!It can be very handy to parse trusted files that are valid
!The parser does not store or create any structure with the XML data
!instead it use an interface and call each method of that interface
!passing the XML Data.
!To use the parser the IXmlNotify need to be implemented. |
Template changes
External procedures now have the "Only One Instance Allowed of the Procedure" prompt. The File Drop template adds prompts for "Include Blank Choice" and "Include 'All' Choice".
There are some new trigger embed points.
There's a new port template prompt to let you hide the output progress window.
You can now optionally generate modules as generic, with an empty Member() statement.
The UserControlClass procedure template now has this comment:
Code Block |
---|
#! This control template is for testing only and not supposed to be the final version (WIP)
#PROCEDURE(UserControlClass,'UserControlClass','ClarionOOP'),WINDOW,PARENT(SourceClass(ABC)) |
SoftVelocity announced the UserControlClass template at DevCon 2013, describing it as a template that lets you create a control or set of controls which are then wrapped up in a class for use in any other window. This has a lot of promise, but probably wouldn't be as widely used as H5 or touch support at least in the near term, which may be why it doesn't seem to have a higher priority.
There are some new gradient color prompts for windows and fields.
The ClaTalk.tpl template, which adds various kinds of support for email and SMS, is missing from my 9.1 install; perhaps this is an oversight.
Usually when I go through release changes I come across existing code I never knew existed. One such is tutil.tpw, which contains a code template called CreateAtFromEmbed that does exactly what you'd think - you drop it into an embed point and it generates commented-out template code that you can use in your own templates. Nifty.