Quantcast
Channel: Clarion
Viewing all 121 articles
Browse latest View live

Template for creating a CLASS in an .App

$
0
0

At the CIDC conference we showed a template (that is already included with C9) for easily creating CLASSes within your APP.
The Help doesn’t yet cover it, (but will in the next update) and it’s very simple to use without any docs. Here are a few screenshots to get you going;

start by inserting a new procedure and then select “Source Class”
NewSourceClass

if you press the Actions button, you have the option to declare the module as a generic MEMBER() so you can share the class between Apps as needed.  (this option was actually added during the devcon based on feedback during the presentation)

SC_actions

the embed points are pretty much self-explanatory

SC_embeds

SC_props

You may have noticed the other new template Procedure “Generated UserControl Class”. As the name implies that template creates a ‘user control’ which is comprised of a Window and all the controls on it.  We’ll post separately about that one.


H5 Builder

$
0
0

At CIDC in September we showed a quick demo of an H5 enabled app.  For the details on what the H5 product is all about you can read this; http://clarionsharp.com/blog/clarion-h5/

At the conference I talked about our plans for H5:

H5 will be included with a future C9.x EE.  H5 will be our first Clarion Community open source project.  We’ll be posting the templates and classes onto GitHub so that Clarion developers from around the world can hack, enhance, branch, and generally share their ideas and expertise (working along side our core dev team).  At the conference quite a few of the Clarion devs present indicated they are looking forward to getting involved with the project, and I think there are many more who weren’t at the conference who will join in.

Currently we are refactoring the templates/classes to move each control into separate file(s).  This is a necessary first step to ensure its easy to work on files and get them checked back into the common repository while minimizing conflicting changes.  We expect to open the project on GitHub in approximately 2 weeks.

Clarion 9.1

$
0
0

The next Clarion release (9.1) has over a dozen new features, and many bug fixes and changes to improve the RTL and IDE, but two new features stand out above the others.  That is the support of Touch input and  the support for Registration-free activation of COM objects from side-by-side assemblies.

The Touch support is automatic and transparent, no code changes needed — just a rebuild of your app and you have it.  But you also have the option to use an interface to take full control of all the touch events and handle them as you see fit.  We have a few good examples that will show you exactly how to do that.

The Reg-free COM support is also automatic, and likewise requires no change to your code. If the OCX ProgID isn’t found in the OS registry then the RTL looks for a local manifest.  The declaration of the interfaces in the OCX can be placed in either the program’s manifest or in a separate manifest. In the latter case, the program manifest must contain the <dependency>
block with assembly name equal to name of the OCX’s manifest without the “.manifest” extension (this the preferable way).

Tomorrow we’ll be expanding the group of Clarion 9.1 alpha testers, and our goal is to get 9.1 to all 3rd party vendors by the end of the week.  If all goes well within another ~week it’ll move to a general release.

 

 

9.1 and Reg-Free COM

$
0
0

As previously posted 9.1 introduces support for registration-free COM activation.  That simply means that you can deploy your App that uses any COM controls without having to install and “register” the COM control. You simply include the binaries for the COM controls and deploy it with two manifest files; one manifest for your App that specifies the “dependency”, like this example:

<dependentAssembly>
<assemblyIdentity
version=”16.2.4.0″
processorArchitecture=”X86″
name=”Codejock.ChartPro”
type=”win32″
language=”*”/>
</dependentAssembly>

After talking about this on Wednesday on ClarionLive we went and added this support to the templates.  It is as simple as this example:

DependentManifest

Now the only thing left is for you to create the manifest for your COM control.  There are various tools out there like “Make My Manifest” (link) and “Unattended Make My Manifest” (link), as well as several others, which handle the manifest creation for registration-free COM.

9.1 – 2nd beta is released

$
0
0

We just released the 2nd beta of Clarion 9.1.  You can check the fixes/changes/features since the release of 9.0 here

9.1 – beta 4 is out

$
0
0

We released 9.1 beta 4 last Friday (Feb 14).  The news on the 9.1 release has been focused on Touch support and Registration-free COM support, but there is a LOT more than that in this release.  Check the readme here for the complete list of fixes/changes and new features. We’ve expanded the beta test group to ~100 developers – if you’re a Clarion developer who is interested in working with the beta version, and have the time and patience to work with beta software… we’d be glad to add you the group – send an email to support to request access.

9.1 – beta 5 is out

$
0
0

Yesterday (March 13) we released an updated beta version.  We are getting close to a general release and we’ll know better after the beta testers have had a few days to work with this release.

On the topic of conversions between LONG and TIME data types we introduced two new Pragmas. You can control how the conversions between a TIME field and a LONG are handled using these PRAGMA settings:

PRAGMA (‘define(time0=>off)’) or PRAGMA (‘define(time0=>on)’)

PRAGMA (‘define(sqltime0=>off)’) or PRAGMA (‘define(sqltime0=>on)’)

Summary of behavior when these pragmas are set on/off:

PRAGMA (‘define(time0=>off)’)

This is the default value. TIME(0) is converted to 1 (TIME:MIDNIGHT), i.e. mid-night to mid-night.

PRAGMA (‘define(time0=>on)’)

The compiler generates code to convert TIME(0) to 0 (TIME:NOTIME).

PRAGMA (‘define(sqltime0=>off)’)

This is the default value. The compiler does nothing additional for fields of SQL tables having the TIME data type.

PRAGMA (‘define(sqltime0=>on)’)

If the TIME value to convert is a field of a FILE, the compiler generates a call to the NULL function. If the result from the NULL() function is TRUE (field has a NULL value), the TIME field is converted to 0 (TIME:NOTIME) value. Otherwise, conversion is controlled by the define(time0) pragma.

It is easiest to set the PRAGMA to the desired value at the Project level (Project Properties) But PRAGMA directives can be set before any line in your code where TIME value is being used in an expression converting TIME to LONG).

Related; All SQL drivers have been updated so that a call to NULL(datefield) or NULL(timefield) will return TRUE if they are part of a DATE/TIME Group, and the corresponding column on the server is NULL.

9.1 – beta 6 released

$
0
0

The 6th beta is out today (March 27). There are ~50 fix/changes/new features added to this release. We expect that next week we’ll make a final pre-release available to all users. You can view the complete list here.
Some of the new features in this release -

  • New WindowManager method ModalEvent added that can be used to test if the current event is modal or not
  • The ODBC driver now supports generating JOIN structures where the the column names in the ON clause of the outer join are in the same order as their respective table names in the OUTER JOIN clause
  • The ODBC interface to TPS now supports LEFT OUTER JOIN clauses on the left hand as well as the right hand side of a join. If a join is on the left hand side, then it must be enclosed in brackets
  • a new XMLWriter class to easily write new XML files

9.1 – beta 7 on its way out

$
0
0

The new beta release is on its way out.  You can read all that’s new here.  We’ll take feedback until Wednesday (April 16) and if all is good we’ll offer a pre-release to all developers with  current subscriptions.  It looks like we have all significant issues resolved after adding the touch input support – and we’re pretty happy with the results for Clarion developers being able to offer full Win 8.1 desktop touch input support without having to change a single line of code.  Of course there is complete low-level support for touch input with accompanying class wrappers so you can make your app do anything that Win 8.1 supports. There are just a few things that we expect to add to the templates that enhance the touch experience — those will come in the next release later this week.

Clarion 9.1 Pre-Release

$
0
0

Today we are announcing  general availability of the 9.1 Pre-Release! While 9.1 is a minor version number change, it is a major change to the Clarion IDE and Runtime library. The 9.1 release has close to 300 changes/fixes and features, and has been through months of beta testing with close to 150 beta testers (nine alpha/beta releases, not counting this pre-release).

One of the most significant changes is the implementation of support for the Win8 API for accepting Touch input.  The Touch input support is built into the RTL, and requires
no changes to your code. When you rebuild your App with 9.1 your program is ready to accept and respond to Touch input on any Win8 device. The Touch support will continue to evolve as we get your feedback.

Another important feature is the new support for Registration-Free COM. This simply means that you can deploy your App that uses any COM controls without having to install and “register” the COM control.  More details here: http://clarionsharp.com/blog/9-1-and-reg-free-com/

There are many other new features, from IDE enhancements to the new TopScan and TpsFix, as well as hundreds of important changes and fixes, and you can read the complete list here: http://softvelocity.cachefly.net/C9/readme_9.1.11014.txt

We strongly encourage you to get the new release and get to work with it. We’ll be following your feedback as we move to the official gold release of 9.1.

Note: The 9.1 release requires a one-time rebuild of all your Binaries (DLL and LIB). You need to download the 9.1 versions of any 3rd party addons that you use.

 

9.1 Pre-release update

$
0
0

In the next release we changed how launching of the on-screen keyboard for text-like controls behaves.

From the HELP file;
The Touch support is built in to the RTL, and no explicit code is needed for your program to respond to Touch input.  The RTL implementation is based on the Windows 8 API.

*Currently for Windows 8 and 8.1 Microsoft has removed the OS level functionality for Desktop apps to automatically show the On-Screen Keyboard when a text-like control (Entry, Textbox, Drop Combo, etc.) control gains focus.  We have added support in the “Enhanced Focus” template code to workaround this limitation.

To enable your programs to automatically display the On-Screen Keyboard go to Global Properties->Actions-App Settings and check the box for “Provide visual indicators on control with focus”.

Then choose the desired radio button for the On Screen Keyboard.

The options are:
On - Your program will attempt to launch the On-Screen Keyboard on any device.  If the On-Screen Keyboard isn’t available no error is displayed to the end user.

Off – Your program will not try to launch the On-Screen Keyboard.

Auto – Your program will ask the OS if the device supports Touch input.  If the OS indicates the device supports Touch input the On-Screen Keyboard is set to activate on text-like controls, otherwise it is set to Off.

 Enabling and disabling of the On-Screen Keyboard can also be set globally for the application at runtime by calling the SetOnScreenKeyboard() method of the EnhancedFocusManager class.

On screen keyboard

Clarion 9.1 update on it’s way out

$
0
0

A final pre-release for 9.1 is on it’s way out this afternoon. Next week we’ll release updates to all add-on products, and some new examples.

There’s a last batch of changes and fixes, as well as a few new features, and you can read the complete list here: http://softvelocity.cachefly.net/C9/readme_9.1.11129.txt

Clarion 9.1 Gold release

$
0
0

After a long and very thorough test cycle involving  thousands of users, Clarion 9.1 Gold is released today!   From the implementation of support for the Win8 API for accepting Touch input, to the new support for Registration-Free COM, and the new i64 family of functions, this is a very important release. All told there were almost 350 public fixes/changes/features implemented.

The release today includes additional changes/fixes and enhancements since the last beta release. View the complete list here.

To learn more about 9.1 you can read some of these older posts:

http://clarionsharp.com/blog/9-1-pre-release-update/

http://clarionsharp.com/blog/9-1-and-reg-free-com/

 

Clarion 9.1 update is out today

$
0
0

An update to 9.1 is being released today, here are a few of the more important fixes;
FIX: OLE Automation could be treated as side-by-side instead of an OLE server in a separate process

This fixes OLE server automation, such as automating MS Office components, and came about as a result of the support added for registration-free COM.  Surprisingly even after months of beta testing this wasn’t found until after the 9.1 gold release.

And these two, related to problems with either unusually large amounts of Procedure data, or .APPs where templates have been unregistered without removing the associated embed code:

FIX: Possible IDE lockup when there is very large number (hundreds) of local/global variables/tables in the Procedure and the IDE is processing the closing of an embed.
FIX: Possible failure on closing APP if embed tree with orphan embeds has been touched.

There are many other fixes and changes, you can see the full list here.

And of note for those using SQL backends;
FEATURE: The Clarion to SQL converter now converts the following operators for the specific drivers –
% (Modulo) All drivers
^ (Power) Pervasive SQL, Oracle
& (Concatenate) All drivers. *Note that ODBC uses the ANSI standard ||
XOR (Exclusive OR) SQLAnywhere, MSSQL

Clarion 9.1 updated

$
0
0

An update to 9.1 is being released today, there are a few important fixes;

FIX: A random “missing pure virtual” exception could be thrown by the evaluator
FIX: Possible lockup if Listbox height is enough to show only one record but the row is multiple lines
FIX: SETDROPID could work incorrectly on dragging between 2 Clarion applications
FIX: The application generator could not open an app after you edited its dct and deleted a file that had aliases.

The complete list is here.


Digging deeper into Touch

$
0
0

Clarion developers don’t need to add any code to support touch input. The C9 Templates generate all the code needed to respond to touch gestures, so existing Apps just need a regenerate with C9 to become touch-enabled. But its easy for Clarion devs to add more specialized responses and touch “features” to their apps by working with these new additions to the RTL –

  • new event; EVENT:Pointer
  • new built-in function; POINTERDATA()
  • new SYSTEM property; PROP:PointerInterface

For more details on what the RTL exposes to your apps I refer you to this previous post.  If you don’t have the time to read it right now then I’d just like to point out this one excerpt:

They (Gartner) predict that Windows will grab 39 percent of the tablet market in 2016. You can be sure that you’ll have many users wanting to run your Clarion apps on their (Win8 Pro – x86 based) tablet. 

So roughly speaking they are predicting there will be about 5 million users on Windows tablets.  Even if they are off by a million or so, its inevitable that touch and tablets are in your future, and its a good bet that some of those tablet users will be your end users.

If those numbers catch your interest then you probably should download and build this example

The example shows how to use the interfaces contained in the touch.* source files (located in your .\libsrc folder).  It provides a nice look at some of the new features your apps can now support for an optimal “touch” experience (above and beyond the support the RTL provides automatically).

touchMode

 

Clarion 9.1 update available today

$
0
0

An update to 9.1 is being released today, it has some useful fixes, many of which have already been field tested by the developers who reported them.

The complete list of fixes is here.

Clarion 9.1 update

$
0
0

We released an update for 9.1 today (build .11457), including an important fix for Docked windows and some tweaks in the IDE.  You can view the changes here.

We plan to release an alpha build of Clarion 10 next week.  I’ll be writing separate posts on what’s new in C10 in the coming days.

 

Clarion 10 beta is out!

$
0
0

Clarion 10 was released today (beta 3) to all users!  Most accessory vendors have already announced that they have C10 compatible versions of their products ready for download.  Check the C10 Help file topic: What’s New in this version->What’s new in Clarion 10 for the highlights and the readme file for a more complete list.

Clarion 10 – beta 5

$
0
0

Clarion 10 – beta 5 is on its way out.  In addition to bug fixes this release has the new template support for the TCP/IP Sockets class.  So now you can easily create a socket server and clients, and communicate by sending messages or data to individual stations or broadcast to all connected clients. (EE only)

The examples install was also updated and includes a sample ‘Chat’ app, that uses the new sockets templates. If you previously installed the new C10 examples, please uninstall the old examples as we have revamped the folder structure and removed some older examples (for email and SMS) that referenced INCLUDE files that had been renamed (hence they will fail to compile).

The JSON class is also updated and adds new some new functionality for nested GROUPs and conversion of empty strings to the JSON keyword value ‘null’. (JSON class is EE only)

We also corrected a problem in the Amazon S3 example. (S3 support is EE only)

Viewing all 121 articles
Browse latest View live




Latest Images