I have started posting what I call "Mini-Tutorials" about the Icetips Utilities. The first one is up and is about the String class.

There is a lot of powerful stuff in the Icetips Utilities and we are far enough ahead into this product now that we can start showing people really how they can be used. The tutorials are not about how the classes work, but how you can use them. They demonstrate with simple code how to accomplish certain tasks, in this case for example how to quickly read and write text files without using the Clarion ASCII driver. Also how to export data to comma separated files and even XML.

We will be posting one tutorial every Monday so make sure that you check them out!

-- Arnor Baldvinsson

We have made build 2352 available for download. This build includes mostly updates to the documentation - several more templates have been documented - and it also includes minor fixes to the ReadFileToString and WriteStringToFile methods that would report errors on the wrong api in some circumstances.

We are trying to get into a schedul or releasing something new every Monday but we hit an unexpected problem yesterday so we delayed the release until this morning!

-- Arnor Baldvinsson

1

Two months ago I implemented the Clarion PDF generation templates in a client project. I was pretty horrified by the results as characters were chopped and spaced very strangely. After posting about this on the Clarion newsgroups, Lee White suggested that this was because I was running Large Fonts on my system.

Since I have had to deal with Large Font issues before simply because I use high resolution and need to be able to seeB) I decided to take a closer look at this and see what was going on.

Sure enough the problem stems from code in the ABPRPDF.CLW file where the width of the characters is calculated. To fix this I made some changes to the files.

This involves adding a single method to the PDFGeneratorClass class in ABPRPDF.INC and ABPRPDF.CLW:

Add to class declaration in ABPRPDF.INC (I put it in at the top of the
method list, around line 195):

AdjustDPIValues   PROCEDURE(Long pValue),Long 
!! AB 2009-02-19  Adjusts DPI values

In the classfile, ABPRPDF.clw, I added this:

PDFGeneratorClass.AdjustDPIValues   PROCEDURE(Long pValue)!!,Long 
!! AB 2009-02-19  Adjusts DPI values
HDcScreen  UNSIGNED
IDPI       Long
R          Real
L          Long
 Code
 R = 1
 HDcScreen = GetDC(0)
 If HDcScreen <> 0
   IDPI = GetDeviceCaps(HDcScreen, 88)
   L = ReleaseDC(0, HDcScreen)
   R = IDPI/96
 End
 Return (pValue / R)

In PDFGeneratorClass.AddFontDescriptor method, you have code like this:

!SET the fonts Width
LOOP LOC:I=SELF.FontsNames.FirstChar TO SELF.FontsNames.LastChar
   LOC:CharToTest=CHR(LOC:I)
   IF GetTextExtentPoint32(LOC:DC,LOC:CharToTest, 1,LOC:CharSize)<>0 THEN
      IF LOC:Subclasing THEN
         IF SELF.FontsNames.CharWidth[LOC:I] THEN
            SELF.FontsNames.CharWidth[LOC:I] = LOC:CharSize.eW
         END
      ELSE
         SELF.FontsNames.CharWidth[LOC:I] = LOC:CharSize.eW
      END
   END
END

I changed both of the assignments to the CharWidth to:

SELF.FontsNames.CharWidth[LOC:I] = |
           SELF.AdjustDPIValues(LOC:CharSize.eW)

In PDFGeneratorClass.GetTextWidth method, you have code like this:

 IF SelectObject(LOC:DC, LOC:HFont) THEN
    RV = GetTextExtentPoint32(LOC:DC,pText, LEN(pText),LOC:CharSize)
    LOC:OLDMAPMODE=SetMapMode(LOC:DC,LOC:OLDMAPMODE)
    DeleteObject(LOC:HFont)
    RETURN LOC:CharSize.eW + (LOC:CharSize.eW/20)
 END

I changed the RETURN to adjust the value:

RETURN SELF.AdjustDPIValues(LOC:CharSize.eW + (LOC:CharSize.eW/20))

This takes care of the font sizing problem in any DPI combination that I
threw at it:)

Arnor Baldvinsson

We have made Clarion 7 compatible installs available for ALL of our products! Those who have a valid subscription can log in and download the latest installs. The installs have been tested with the last 2-3 builds of Clarion 7 and anything we have found has been fixed if we could. There is a couple of items that we found to be bugs in Clarion and we are certain that those will be fixed by Softvelocity as soon as possible.

One problem we ran into was with our Checkbox Fixer. It fixes checkboxes and radio buttons on reports so they look better and are more easily readable. We create controls at runtime and rely on getting the font information from the controls on the report. In Clarion 6.3 and older this worked flawlessly. In Clarion 7 the font size for Radio buttons is not related to the actual font size - not sure what it is related to. On our test machines here we would get a value of 25 points while Softvelocity confirmed that they were getting values around 64 points!

Another issue with Clarion 7 is that we cannot use the Menu theming in PowerToolbar in Clarion 7 so it has been disabled. Clarion 7 uses owner drawn menus and there is no way to make the PowerOffice menus work with them unless SV makes it possible to turn the Clarion 7 menus into standard windows menus like they are in Clarion 6.

If you find any problems with the new installs, either for Clarion 7 or older then please let us know as soon as possible so we can fix them right away and release new builds.

We have done a lot to make the look and feel of all our products and all our installs as similar as possible. All our templates now have a "Support" tab where you can go directly to our website, our bug tracker and open a support web page that is installed on your computer. From that page you can log into your account, open the online chat software, etc. etc.

We now use our Build Automator to build all our installs. That means that everything should have exactly the same version numbers, including template source, class source, install, everything. So you can see immediately by looking at the first lines of a source file what version it is if you need to report problems. All the templates also show the version number on the Support tab and the release date. We hope this will help tracking down issues.

One other thing that we are changing and that is that we will be making new installs available for download without overwriting or removing the old installs. We will however not make installs that are older than todays installs available so this is more for future use. This allows you to download older installs if you need to for example if you are working on client projects that use older versions and you don't want to update.

There has been a lot of discussion about placement of demo apps for Clarion 7. All our installs now allow you to select a folder to place the demo apps in for both Clarion 7 and older versions. By default the suggested path is %ROOT%\3rdParty\Examples\ProductName in Clarion 6 and older and CSILD_COMMON_DOCUMENTS\SoftVelocity\Clarion7\Accessory\Icetips\ProductName in Clarion 7. If you install for Clarion 7 a shortcut is created to the demo apps folder during the install.

Arnor Baldvinsson

We have finished testing for the Beta 1 release of the Build Automator today and it will be made available to beta testers after the weekend. This beta includes a lot of fixes that I have been working on for the past several months. Details about the fixes and new features in this build will be publiesed on the Build Automator website after the weekend.

I also worked on a fix for XP Taskpanel which had refresh problems in Clarion 7 resulting in the taskpanel not drawing correctly. In my tests the fix worked without problems in Clarion 7 build 5332, but the customer reporting the problem was still having some problems with it. I will probably not get more information until after the weekend.

-- Arnor Baldvinsson

It has been quite a while since I wrote on my blog and I'm planning on changing that! The past couple of months have just flown by!

I am right now finishing new Clarion 7 compatible installs for all of our Clarion third party products. So far everything is looking good and I should finish the new installs before Monday, April 13. I already have installs for PowerToolbar, XP TaskPanel, XP Themes, Outlookbar, Previewer, Utilities and Magic Buttons ready and tested. What is left is the Magic Locks, Magic Entries, Checkbox Fixer and SQL browse.

I am also getting close to beta testing of a new release of our Build Automator with a ton of fixes and updates.

Once those new installs are built and released I will be in a better position to release updates faster when new features are added or fixes are made. Every install is now built with the Build Automator and SetupBuilder 6.9. Some of the documentation for the older tools has got a bit out of sync and I will be working on getting that updated.

We are looking forward to the release of Clarion 7. While the new IDE takes some time getting used to and there is still a lot of polishing going on, it has some very nice and welcome features, such as a nice editor with code folding and all kinds of nice features. The IDE is much faster to load templates and classes than the old IDE. We have not found any major issues with it in our testing with our products.

There are, however, some limitations in some of our products. XPTheme is not needed in Clarion 7 since it themes all the controls that the XPTheme used to them. Several methods in the XPTheme classes are used by PowerToolbar so we modified the template to also work in C7 without implementing any theming. So far it seems to work fine. PowerToolbar cannot be used to theme the menus in Clarion 7 because it uses owner drawn menus and there is no way to turn them off. PowerToolbar does it's own owner drawn menus and they cannot work together with the Clarion 7 menus. So the menu theming in PowerToolbar is disabled in Clarion 7.

-- Arnor Baldvinsson