Clarion Folk

Making Development Better Than Eating Icecream

Search And Find (Where's my Alt F3?)

What Is Clarion?
What Can Clarion Do For Me?
Stu's Greatest Hits (Tools)

Entries from April 2008

Clarion Aussie DevCon Support

April 22nd, 2008 · · General

Three cheers! Huzzah!

Geoff just sent an email out, and check this out. What a fantastic show of support from the 3rd Party Clarion Community.

Kudos to you all!

[Read more →]

Tags:

Clarion Folk Lore #3 - Dutchland, Scope and Slanderers Warned

April 16th, 2008 · · Clarion Folk Lore (Podcast)

Clarion Folk Lore #3 is live!

Download: Here (16:07 mins)

URLs

Answers

  1. What does MEMBER() do vs. MEMBER(’MyApp.clw’)
  2. Every module needs to either have a PROGRAM statement or a MEMBER statement.

    The main module of an EXE/DLL/LIB will have the PROGRAM statement. All others will have a MEMBER statement of some form.

    - The form, MEMBER(’MyApp.CLW’) tells the module to use the global scope of MyApp.CLW

    - The form, MEMBER() has no shared scope what so ever. This form is useful for generic code, these days typically for CLASSes

  3. What is the purpose of having a MAP, when it has no procedures in it?
  4. A MAP is used to declare prototypes for procedure. However an empty MAP isn’t quite as empty as it seems.

    Every MAP brings in %cwroot%\libsrc\BUILTINS.CLW
       so

       MAP
       END

       becomes

       MAP
         INCLUDE(’BUILTINS.CLW’),ONCE
       END

    Other files that are brought in:
       - EQUATES.CLW  (found in %cwroot%\libsrc)
       - Win32.LIB    (found in %cwroot%\lib)

  5. How do you make a QUEUE of QUEUEs ?
  6. You’ll need to use ,TYPEd Queues, and you’ll (typically) use NEW / DISPOSE .

       At it’s core:
       qtChild QUEUE,TYPE
       Name           STRING(42)
                       END

       ParentQ  QUEUE
       ID                  LONG
       Children     &qtChild
                           END

       Here a field of the ParentQ is a reference to another queue. Typically as you’re doing the ADD()s to the parent, you’ll either:
       a) ParentQ.Children &= NULL
       b) ParentQ.Children &= NEW qtChild  !instantiate a new one
       c) ParentQ.Children &= SomeChildQ   !already instantiated

       Remember when you’ve used NEW to instantiate, you are responsible for the matching DISPOSE, so typically when you’re doing DELETE(ParentQ) or wish to FREE(ParentQ) you will want to first DISPOSE(ParentQ.Children).

       qtFolder QUEUE,TYPE
       Name       STRING(FILE:MaxFileName)
       Path       STRING(FILE:MaxFilePath)
       ShortName  STRING(13)
       Date       LONG
       Time       LONG
       Size       LONG
       Attrib     BYTE
       SubFolders &qtFolder
                END

       Above is an example of a structure for a queue of queues, where the child queue is of the same structure as the parent queue.

       These sorts of structures lend themselves to recursive coding, however it’s not required.

[Read more →]

Tags:·····

There Is A New Report Designer In Town

April 10th, 2008 · · General

Steve Ryan is a shining light. When most other people are either disparaging the new Clarion (newsgroups) or not doing much with it at all (me), he’s toiling away. Sure, he’s struck a few hurdles, but it hasn’t slowed progress.

 

Steve and his crew are nearing the end of a big product. They are completing the end user GUI for the stand alone development report designer and runtime.

 

Steve has kindly sent me some screenshots+words, as follows:

 

The Report Listing Application

Picture 1. The Report Listing Application.

 

Designermode

Picture 2. The Report Designer.

The report layout editor supports multiple report breaks all with separate database access. Full range limit support and filters plus embed points at runtime for customised report statements using over 1000 commands supported by the runtime.

 

 Designermode2

Picture 3. The Report Designer Database drop and drop tree control.

Drag database properties to the Report Layout and the layout will get it’s setting from the primary key its uses to report breaks, it’s all automatic. The simple ribbon toolbar expands to display the options on the tabs. This design approach splits the window into two parts. The Layout design and the ribbon (toolbar) options plus Report Layout Options which are shown in Pic4.

 

 Designermode3

Picture 4.

The report setting mode allows the report designer to switch back and forth between layout design and report settings by simply pressing the view buttons
on the left. Report Design mode, Next, Previous and Back switch the user between modes so that all options are displayed on the one window without the need for toolbars or floating windows that clutter up the appearance design window. This makes it very easy for end users to master the report layout designer. Its all pretty easy.

 

Kudos to Steve and his Crew!

[Read more →]

Tags:·

Alas, No Clarion Folk Lore This Week

April 9th, 2008 · · General

That’s right. It’s a sad day, and Rastus got grumpy. In fact, the crazy clansman hasn’t stopped playing dirges on his pipes since.

 

Last night I made a vidcast for the Clarion Community. I’m still not sure if I’ll put it up. Just weighing up the options.

[Read more →]

Tags: