Yesterday I uploaded some changes to the Icetips website that I hope will help make the site more accessible.  I'm working on a redesign that will be fully responsive, but that's going to take some time to complete.

We have changed the basic fonts so text is now more open and there is more white-space on the pages.  Colors have changed as well and the site as a whole is a bit brighter.  All the product pages now have tabs where there is information about features, compatibility, downloads and screenshots.

I have also added a "Version History" tab to 5 products, Utilities, Previewer, Outlookbar, Powertoolbar and Taskpanel.  The version history for the rest of the products will be up there soon and I will keep this updated as new releases are made.

The login page also has tabs with the latest downloads, blog entries and your profile, so it's easy to get to it all on one page.

For those of you in the US, I wish you all a happy 4th of July tomorrow:)

Arnor Baldvinsson

I have released two new product builds this morning.  Icetips Utilities build 1.2.2433 and Icetips Previewer build 2.7.392.

The Previewer build fixes a problem with the Page of Pages template which I found out was not working with the Legacy/Clarion template chain.  This build also includes the fix to scrolling under Clarion 10.

There are two new features in the Utilities that will come in very handy when dealing with importing comma separated files.

First is a new property, pDelimterStartsLine, to the SplitString method.  It allows it to split strings where the delimiter is the beginning of a line, not the end of it.  Normally SplitString splits strings based on CR+LF (<13,10>) characters at the end of the line.  Recently a customer needed to split a string that had no CR+LF pairs, but each record started with a specific string.  By implementing this change he was able to split up his file and read the data correctly.

The second new thing is the ParseCSVLine method.  It takes a line of comma separated CSV data and splits it into fields, stored in the CSVFields property of the Icetips String Class.  This method can take regular old CSV data and parse it into easily accessible field data. It handles commas in strings without problems so there is no worry about it getting out of sync if the data is otherwise properly formatted.  I have made it flexible so that you can specify if strings are quoted or not (if they are, the code will look for and ignore commas inside the string) as well as specify the delimiter to use (up to 4 characters).  The pStringsAreQuotes parameter defaults to TRUE and the pDelimiter defaults to a comma (,)  Check out the demo code in the help:

ITS  ITStringClass
S    STRING(255)
I    LONG 
F    LONG
X    LONG 
  CODE
  ITS.FileToLines('testcsv.csv')
  LOOP I = 1 TO Records(ITS.Lines)
    GET(ITS.Lines,I)
    F = ITS.ParseCSVLine(ITS.Lines.OL)
    ITS.ODS('Line: ' & ITS.Lines.OL)
    IF F
      ITS.ODS('  ' & Format(F,@n_3) & ' Fields from ' & ITS.Lines.OL)
      LOOP X = 1 TO F
        GET(ITS.CSVFields,X)
        ITS.ODS('    ' & Format(X,@n02) & ' ' & ITS.CSVFields.OL)
      END
    END
  END
ParseCSVLine example code (image)
ParseCSVLine example code (image)

There are also some fixes in this Utilities release:

March 10, 2015 The template could cause classes to export an older version which could cause "xxx is unresolved for export" errors when compiling exporting dlls.  Fixed.
May 24, 2015 Fixed a potential memory leak in the AddIntoParenthesis method.
June 27, 2015 Image Class ResizeImage method did not work correctly on reports.  Fixed.
June 27, 2015 Image Class ResizeImage did not correctly size images when it was called multiple times for the same image control.  Fixed.

Arnor Baldvinsson

I have been working on Build Automator in Clarion 10 this week, along with other things.  Yesterday I discovered that there was something very odd going on with the resizing of the windows.  When comparing the Search and Replace window between the Clarion 6.3 version and the Clarion 10 version, it was like the listbox wasn't stretching like it should, as seen in the screenshot below.

06.17.2015-14.59
Clarion 6.3 window on the left, Clarion 10 window on the right.

After quite a bit of snooping around and posting on the newsgroup, where Bob Campbell pointed out the listbox size issue, I came to the conclusion that there was a problem with the WindowResizeClass.SetParentDefault method in ABRESIZE.CLW.  So to test it, I copied the one from Clarion 6.3 and omitted the original and lo and behold the resizing worked perfectly again!

After sleeping on it, I realized that the code change involved a new method of finding the parent control of a control, which doesn't have a PROP:Parent parent - kind of an orphan;)

In the class method the code figures out what type of parent controls there can be:

 CASE ThisControl{PROP:Type} + 0
 OF CREATE:Group
 OROF CREATE:Option
 OROF CREATE:Tab
 OROF CREATE:Sheet

This is missing both CREATE:Panel and CREATE:Region!  I'm using Panels all over the place on the windows in Build Automator and came to the conclusion that this is where the problem was.  So I added:

 OROF CREATE:Panel
 OROF CREATE:Region

to the list, re-compiled after omitting the Clarion 6.3 code, and it worked perfectly again:) The CASE statement is around line 580 in the ABRESIZE.CLW file if you want to do this fix to your class file.  I have reported this to Softvelocity and hope they will fix this in the next release.

Arnor Baldvinsson

I have released Icetips Previewer build 2.7.391 with a fix to the problem with mouse wheel scrolling in the previewer window under Windows 10 that I blogged about yesterday. The fix seems to take completely care of the problem and have no ill effect on previous versions of Windows that I can find.  If you run into any problems with it or it seems to behave differently, then please let me know!

Arnor Baldvinsson

In Clarion 9.1 and 10 you can change the fonts for the IDE. This makes it easy to customize the IDE to look the way you want it to.  Personally I change the environment fonts to Segoe UI 9pt for dialogs and listboxes and Segoe UI 17pt for the Start page.

Clarion10FontSettings

I use good, old, boring Courier New 10pt for the editor but you might want to try Consolas, Lucinda Console or some other fonts.  Somehow I have ended up with one of Adobe's font on my laptop, "Source Code Pro" which comes in several different versions (black, semi-bold, light, extra-light)  The normal one looks pretty good, but I haven't really used it.  I have also used Droid Sans Mono which is a Google font.  If you want to find fonts to use in your editor, something other than Courier New, then go to fontsquirrel and have a look around.

Note that you must restart the IDE for the font changes to show.  This applies to all the font settings, also the Text Editor settings, which is a bit of a bother as you have to restart the IDE just to see how the fonts look like.  My suggestion is to load some code into WordPad and use it to pick a font that looks good to you and start from there.  WordPad has a nice feature where it will automatically reformat the text when you hover over a font in the font selection drop-down so it's easy to see how the font will affect the code.  See the video below for a demonstration.

Hope this will help you set up your environment to your liking:)

Update:  Here is an article, while from 2010, contains a nice collection of monospaced programming fonts:
http://www.codeproject.com/Articles/30040/Font-Survey-of-the-Best-Monospaced-Programming

Arnor Baldvinsson

Update: This has been fixed, see this post.

It appears that something in Windows 10 breaks the mouse wheel scrolling in Icetips Previewer!  In the latest Windows 10 Technical Preview (10130) and at least some previous ones if not all of them, it just doesn't work at all. 

computer-mouses

I haven't been able to find any references to a problem with scrolling in Windows 10 so this must be a very isolated case.  Guess it's time to take a look at that sub-classing code I added in back in March 2006 - more than 9 years ago!  My gosh, how time flies! 😎   This does not seem to be Clarion version specific as this is happening in applications compiled in Clarion 6.3 as well as Clarion 10 and with new and old builds of Icetips Previewer.

Hope you all have a good weekend - I'll be spending it with debug view on my Windows 10 virtual machine!

Arnor Baldvinsson

It was brought to my attention today by Lee White that the manifest for Clarion 10 is set to "asInvoker" This means that the IDE is NOT elevated when it runs. This can cause problems.

2015-06-10_1239

For example if you are used to seeing the  "Process Running" message if you accidentally left the program running that you are compiling, you will not see that in Clarion 10.  It will simply give you an "Access denied" error at the end of the linking process.

To fix this you need to make a small edit in the Clarion.exe.manifest file in your Clarion\Bin folder.  If you load it into an editor you will see a line that looks like this:

<requestedExecutionLevel level="asInvoker" uiAccess="false"/>

Change this line to:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

save it and you are done.  Now the IDE will open elevated and the "Process Running" warning will once again work as it should.  Note that to get the warning you must turn off the "Kill running process before build" or Clarion will simply kill it without prompting.

2015-06-10_1244

 

I have been running the Clarion IDE as elevated since Clarion 7 came out and never had issues with it.  But apparently some people have had problems so Softvelocity decided to change the manifest in Clarion 10.

Arnor Baldvinsson

One of the very cool things in the new IDE is the support for XML help. This is the information entered into .INC files using triple exclamation mark (!!!) comments. This makes a quick help accessible right in the IDE.  I have been working on documenting the ITUtilities.inc file and I'm about half way through it.  It doesn't replace the documentation but once I have gone through and documented the ITUtilities.inc it will be much easier for me to dig through getting the full documentation done.

Below is an example from the ITImageClass in the Utilities:

!!!<summary>
!!! Sets the position of the image withing a boundary control.
!!!</summary>
!!!<param name='pImageFEQ'>The control with the image</param>
!!!<param name='pRelativeFEQ'>The relative boundary control</param>
!!!<param name='pX'>Adjust horizontal placement</param>
!!!<param name='pY'>Adjust vertical placement</param>
!!!<param name='pJust'>Justification of the image inside 
!!! the boundary control</param>
!!! <para></para>
!!! <para>The horzontal justification can be one of:</para>
!!! <para> IT_IMAGE_JUST:LEFT</para>
!!! <para> IT_IMAGE_JUST:CENTER</para>
!!! <para> IT_IMAGE_JUST:RIGHT</para>
!!! <para></para>
!!! <para>The vertical justification can be one of:</para>
!!! <para> IT_IMAGE_JUST:TOP</para>
!!! <para> IT_IMAGE_JUST:MIDDLE</para>
!!! <para> IT_IMAGE_JUST:BOTTOM</para>

In the IDE, when you are entering the name of the method in the editor it will show you a tooltip with all the information above:

2015-06-06_12-32-46

Click on the image to load a full size screenshot.

Arnor Baldvinsson

It's been a bit of a rough ride to get the website moved. I ended up not going with my previous hosting company, rather moving the whole mess over to Hostgator.com.  That presented several challenges, but stubbornness prevailed 🙂

Reason being that Softsys Hosting did not offer a migration from one server to another so I'd have to manually move everything.  Since I was paying them almost $100/month for managed windows hosting, I felt they should be able to migrate my things from one server to another within their domain.  Well, they didn't see it that way, so I decided to save myself a bundle and go with linux hosting at Hostgator.  I'm only paying about 18% of what I was paying at Softsys Hosting.

This came with some pain and suffering though.  All my mySQL databases had to be renamed as Hostgator insists on a user prefix for all databases.  That again required changed in multiple scripts on my side.  Sessions are more sensitive on Hostgator than on previous hosting so they were causing errors all over the place.  Got that fixed.  Then had problems with my ordering process and got that going, but found out that it wasn't sending the emails it should have.  Softsys Hosting doesn't allow using the php mail() function but rather insisted on using an email class.  Worked great there, but didn't work at all on Hostgator so I had to change all my email class calls back to using mail()

After just over a week, I think everything is now back and running as it should.  If you run into any problems anywhere on the site, please let me know!

Since I was doing this, I decided to change the software I used for the Icetips blog and have started using Word Press.  The forum has also been upgraded to the latest and both have been set up to run on subdomains, so you can use blog.icetips.com to get to the blog and forum.icetips.com to get to the forum.

Arnor Baldvinsson