Thursday, July 28, 2011

Harbour MiniGUI 1.9 Extended Edition (Build 98) Released on 28th July 2011

Hi All,

The Harbour MiniGUI 1.9 Extended Edition (Build 98) setup is published at the following URL:

and a lite MinGW-based build 98 archive is placed at the following URL:

There is the following changelog for this build:

2011/07/27: Build 98 (HMG 1.9 Extended Edition) Published.
* New: Added 'ON MOUSEHOVER' and 'ON MOUSELEAVE' events (optional) for LABEL control.
Contributed by Grigory Filatov <>
(see demo in folder \samples\Basic\Label)
* New: Added 'ON MOUSEHOVER' and 'ON MOUSELEAVE' events (optional) for IMAGE control.
Contributed by Grigory Filatov <>
(see demo4.prg in folder \samples\Basic\Mouse_Coords)
* Enhanced: The Image control supports the 'Transparent' clause now.
Warning: This clause works properly for bitmaps with 8 bpp (256 colors) or less.
Contributed by Grigory Filatov <>
(see demo in folder \samples\Advanced\CONTROL_
* Updated: Synchronized Extended HMG with Official HMG 2.0.001:
- New: RIGHTALIGN property for HYPERLINK control
- New: CENTERALIGN property for HYPERLINK control
- Redesigned: HYPERLINK control (Works on top of LABEL control now).
(see demo in folder \samples\Basic\HYPERLINK)
* Enhanced: Added the following features to batch\Compile.bat file:
- Merged the functionality of CompileMT.bat into Compile.bat, by adding
an /MT flag to Compile.bat and using it in the library list build.
- For debug and mixed mode executables, eliminated the need for the two
special lines in your source code.
Contributed by Kevin Carmody <>
* Updated: MPM utility:
- Added a multithread option to the Options tab.
- Corrected a support for debug and mixed mode executables.
- Fixed a bug that occurred when you maximized the main window or
help window and then restored it at startup.
Contributed by Kevin Carmody <>
(see in folder \Utils\MPM)
* Updated: HbSQLite3 library source code (see in folder \Source\HbSQLite3):
- update for using SQLITE3 version
Contributed by Grigory Filatov <>
* Updated: Harbour Compiler 3.0.0 final (SVN 2011-07-17 16:34).
Contributed by Grigory Filatov <>
(look at ReadMe.txt in folder \harbour)
* New: 'HMG Cursor' sample. Borrowed from HMG 4 project.
Adapted by Grigory Filatov <>
(see in folder \samples\Basic\CURSOR)
* New: 'Image-based ToolBar' sample. Requested by Daniel Maximiliano.
Contributed by Grigory Filatov <>
(see demo3.prg in folder \samples\Basic\TOOLBAR)
* New: 'Control Panel' sample.
Contributed by Grigory Filatov <>
(see in folder \samples\Advanced\CONTROL_PANEL)
* New: 'HMG ReadXLS' sample.
Contributed by Isma Elias <farfa890@gmail.Com>
(see in folder \samples\Advanced\ReadXLS)
* Updated: 'Free Memory' sample.
Contributed by Grigory Filatov <>
(see in folder \samples\Applications\FREE_MEMORY)

This release of MiniGUI is considered stable and ready for production use.

Best Regards,
Grigory Filatov
[MiniGUI Team]

Tuesday, July 26, 2011

How to Print to LPT1 in Windows XP

Q. Sam Sommer via

I have successfully converted my clipper 86 to harbour and it looks great and works fine.I am trying to hook up my parallel printer (panasonic 1150) to run on my xp computer but the usb to parallel converter cable works in virtual mode only and my software only wants to work with lpt1. Can I change my code so my parallel printer works under virtual mode and not lpt1? I do not want to use a parallel card because when I tried this the printing seems to stay in the spooler and not print all out?

Answer by Klas Engwall via to harbour-users

If you do not want to change the source code to make the application use the USB-connected printer "properly", then using local redirection in the XP computer instead is a good and quick alternative.

Go to Control Panel/Printers and share the USB-connected printer using a short name like "P1150", for example. Then open a command prompt and NET USE the "P1150" printer as LPT1. Let's say that the computer name is "MYCOMPUTER", then the command would be

NET USE LPT1 \\MYCOMPUTER\P1150 /persistent:yes

Then the printer will be accessible to any application that only wants to print to LPT1.

With "properly" I mean that you can, as an alternative, change the source code to set  printer to "Pansonic 1150 Bla Bla Bla" (whatever it is known as to Windows) instead of LPT1, or you can find out what the default printer is (if the 1150 is actually the default printer) with win_printergetdefault() instead of directly messing with the long name that was created when the printer was installed.


Feedback from Sam Sommer via

I could not get my habour compiled clipper 86 program to see the panasonic 1150 parallel printer because the usb to parallel cable under windows XP only sees the virtual port and the code only sees the lpt1 port.

I went into printers - faxes and right clicked on the panasonic printer. Under properties then under ports I told it to enable two ports:

lpt1 and virtual usb port and you must have checked the print spooler
for two ports to be on at the same time.

I then went into advanced features and told it not to spool but to print right away.

The operating system uses usb - virtual port and the harbour program clipper 86 only sees the lpt1 port. So when the harbour app sees lpt1 is enabled it gets happy but the printer - operating system is not happy yet and when it sees the usb virtual port enabled also it starts printing right away.

Also, since my HP printer is the default printer I do not have to tell any program which printer to use since the custom code only sees the panasonic parallel printer it prints there by default and my
word processor only sees the HP printer.

Hope this can help.

Thursday, July 21, 2011

Updated version of HMG 3.0.37a (2011.06.24) Ready !

The updated version of HMG 3.0.37a (2011.06.24) can be downloaded from (30 MB)

- HMG 3.0.37a (Test) 2011/06/24 Changelog:
- Updated IDE/build.bat/hmg.hbc by Roberto Lopez accommodating /c (console mode) and debugger.
- Included xbase.xml for Syntax Highlighting in Notepad++. Please see readmenotepad++.txt in HMG Folder\notepad++ directory. (Thanks to MigSoft)


More at

- HMG 3.0.37 (Test) 2011/06/20 Changelog:
   - Built using latest Harbour Nightly Build (2011/06/18)
   - Updated Build.bat by Roberto Lopez
   - Updated ide.exe by Roberto Lopez
   - Fixed MultiSelect Grid set value (Thanks to Grigory Filatov)
   - New MixedConsole Sample by Roberto Lopez
   - Fixed Memory Leak Problem (Thanks to Grigory Filatov)
   - Changed the program editor to Notepad++

Monday, July 18, 2011

Harbour Project - Leadership Change

    "Viktor Szakáts" <> Jul 18 01:53AM +0200 ^ To All Harbourers, Now finished releasing the latest stable version into the wild I'm completing my earlier decision to resign from leading the project.
    I'm glad to leave Harbour in very healthy state; it is stable, reliable, efficient and nicely put together like a hand-made Swiss watch. It reaches "enterprise" quality by many means.
    In the meanwhile Harbour stayed true to all of its original goals of compatibility, standard compliance and portability. All these features qualify Harbour the best xBase infrastructure that exists now. This also means that all the plans were met that I originally had in mind when rejoined the project 5 years ago. Thanks go to the active and enthusastic developers, supporters, including family and friends who had to cope with this stuff. It's been very busy years. 
    Disregarding technical aspects, there are things which could be improved though: "marketing", docs, merging the highly split userbase, "activating" the passive part of userbase, attracting new and young crowd, and dealing with shrinking developer force, probably many more. Nothing new here. 
    On the technical side everyone has his/her long list of "wishes", I hope as much of it will become a reality as possible so Harbour will be able to present a true alternative to big players like Python, PHP and Ruby and maybe Java, C# even. 
    Back to now. Przemek enjoys respect and trust from all participants of the Harbour community, myself included just as much or even more, so he became my top candidate for next leader of the project. Luckily, Przemek agreed to take the lead. So, I'm now handing this task to him with utmost confidence and trust. I believe his lead will do the best for the project both in technical and non-technical terms, and will set a different and better tone for the whole project whilst keeping main original goals.
    I'm backing off and plan to spend much less time on Harbour than before to get on with other parts of my life. Many thanks for those who supported me throughout the years, and thanking Phil to trust Harbour on me. 
    Now pls cheer Przemek. Viktor

[harbour-users] 3.0.0 Windows unified distro available

Viktor Szakáts via to harbour-devel, harbour-users
show details 5:17 AM (1 hour ago)

Hi All,

Windows unified distro 3.0.0 is available
(in .exe installer and .7z archive formats):

Make sure to 'like' Harbour Project on the main page:


CCH : Earlier post by Viktor

Hi All,

After more than 1.5 years of strong development and 3600 commits,
stable Harbour 3.0.0 version has been tagged and source packages
released. Binaries will follow, I will upload universal Windows package
as soon as it will be ready. For other platforms, I'm asking volunteers
to make the packages and upload them to file area.

Upgrade is recommended for all users.

Get 3.0.0 sources from here:
  svn export
  (note to developers: never commit into this branch)

Prepackaged sources here for both *nixes (.gz, .bz2, .xz)
and non-*nixes (.zip):

Binary package builders may use above links to get the sources.

[ SVN revision of 3.0.0 is r16952, it will be shown as r16951 in
version information. ]

I've bumped trunk to 3.1.0dev, this will be the new interim
version number for mainline development.

New features and even compatibility breaker commits are
now allowed in trunk. I've already committed some such
changes, stepping up legacy level and dropping old stuff
marked for removal in previous versions.

Users of nightly builds and SVN trunk source please be
aware about above and use it more carefully than in last
6 months. It may break your build or apps. Stick with
stable release if in doubt.

To retrofit fixes to 3.0.0 for possible 3.0.1 bugfix release,
commit to this source tree:
  svn co

I hope this release will serve the community well and I'd
like to thank everyone contributing to create this new release.


Tuesday, July 12, 2011

How to Convert a Clipper 5.2e application to Harbour

This article is written in in response to a comment left on Clipper... Clipper.. Clipper by Terry Carrol on 3rd July 2011 who asked

I’d like to know if there is an easy migration from Clipper to something else that I could make my Clipper program work on a 64-bit machine..."

As you are probably aware, Clipper apps being 16-bits cannot run on 64-bits Windows 7. For it to do so, it must be converted to 32-bits by using the Harbour or  xHarbour. I had previously show how to do so in Migrating from CA-Clipper 5.2e to xHarbour (Part I), a 3-part series. So this article focuses on using Harbour 2.1

Step 1 - Convert your Clipper link (*.lnk) file to  Harbour Project File (*.hbp)
Step 2 - Use Hbmk2 to compile the .hbp file

Step 1

1.1 Let us start by looking a Blinker link file of one of my actual Clipper project

STACK 7168





1.2 Convert the fascall.lnk to fascall.hbp



Step 2



You are bound to have a number of unresolved Externals, ie functions not supported by Harbour.
Once you have found alternative functions, FASCALL4W7.EXE, a true 32-bit executable will run on Windows 7 64-bits.

That's it :-)

Latest hbIDE (r16911) tipped for Harbour release 3.0.0.

Hello Everybody

The latest hbIDE (r16911) tipped for Harbour release 3.0.0.
is available at

There are tons of improvements and feature additions
which is difficult to document in details. Also is rewritten to show up current version.

Please feel free to download and experiment.
It has all the new interface plus many new goodies.

Pritpal Bedi

Can HMGExt create an OLE Object itself?

CCH : From the Harbour MiniGui Forum

Q. Hi

I would like to know if it's possible for HMGExt to create an OLE Object itself, so it can be used from another programs (An OLE Server)?.



Yes , using Harbour you can do that

example :

#include ""

#define CLS_Name  "SNLANG"
#define CLS_ID    "{A78E2493-5156-445C-A516-F330BD4FA013}"


  LOCAL hAction

   hAction := { => }
   hb_HKeepOrder( hAction, .T. )
   hb_HSetCaseMatch( hAction, .F. )
   hAction[ "FILENAME" ]    := NIL                  // DISPID=1
   hAction[ "RUNNOVAFILE" ]  := @Run_NovaFile()         // DISPID=2

   /* Initialize OLE server ID and name.
    * WIN_OleServerInit() should be executed from DllMain()
   WIN_OleServerInit( CLS_ID, CLS_Name, hAction, .T. )


STATIC FUNCTION Run_NovaFile( ... )
   LOCAL hAction := QSelf()

   IF hAction[ "FILENAME" ] == NIL

 RETURN ( hAction[ "FILENAME" ] )

To build this sample, you can use hbmk2

hbmk2 -hbdynvm nova.prg  -lhbwin -lgtwin hbolesrv.hbc

and we have hbolesrv.def & hbolesrv.hbc

# $Id: hbolesrv.hbc 15142 2010-07-17 19:51:18Z vszakats $

stop={!hbdynvm}Warning: Target must be '-hbdynvm' when using '${hb_self}'. Process stopped.





; $Id: hbolesrv.def 14605 2010-05-26 10:08:01Z vszakats $

DllGetClassObject       PRIVATE
DllCanUnloadNow         PRIVATE
DllRegisterServer       PRIVATE
DllUnregisterServer     PRIVATE

When you download harbour you will find samples in this location


Mahmoud Fayed

Known Bugs in Harbour 3.0

"Viktor Szakáts" <> Jul 11 02:48PM +0200 ^

- achoice bugs
- menusys minor Clipper incompatibilities
- hb_ini*() functions buggy since adding them in 2007
- target specific C code generated for some numeric
operations in -gc3 mode (preventing cross-compilation)
- mingw64-tdm produces extra hbtest errors
- symbian build broken
- HBQT class creation not MT safe
- HBQT code using not MT safe strtok()
- hbssl not MT compatible
- gtwvw bugs (scrolling bug still there)

plus these:


Welcome to Clipper... Clipper... Clipper

In 1997, then using Delphi 3, I had already created 32-bits Windows applications for HRIS, ERP and CRM. In 2007, using Ruby on Rails, an AJAX powered CRM site running on Apache & MySQL was created and I am now using Visual Studio .Net 2008 to create web-based projects and Delphi 7 for Win32 applications using SQL2005 & DBFCDX.

So, why then am I reviving the Original Clipper... Clipper... Clipper via a Blog as CA-Clipper is a programming language for the DOS world ? Believe it or not, there are still some clients using my mission-critical CA-Clipper applications for DOS installed in the late 80's and up to the mid 90's. This is testimony to CA-Clipper's robustness as a language :-)

With the widespread introduction of Windows 7 64-bits as the standard O/S for new Windows based PCs & Notebooks, CA-Clipper EXE simply will not work and it has become imperative for Clipper programmers to migrate immediately to Harbour to build 32/64 bits EXEs

Since 28th January 2009, this blog has been read by 134,389 (10/3/11 - 39,277) unique visitors (of which 45,151 (10/3/11 - 13,929) are returning visitors) from 103 countries and 1,574 cities & towns in Europe (37; 764 cities), North America (3; 373 cities) , Central America & Caribeans (6; 13 cities), South America(10; 226 cities), Africa & Middle-East (12; 44 cities) , Asia-Pacific (21; 175 cities). So, obviously Clipper is Alive & Well : -)

TIA & Enjoy ! (10th October 2012, 11:05; 13th November 2015)

Original Welcome Page for Clipper... Clipper... Clipper

This is the original Welcome Page for Clipper... Clipper... Clipper, which I am republishing for historical and sentimental reasons. The only changes that I have made was to fix all the broken links. BTW, the counter from is still working :-)

Welcome to Chee Chong Hwa's Malaysian WWW web site which is dedicated to Clipperheads throughout the world.

This site started out as a teeny-weeny section of Who the heck is Chee Chong Hwa ? and has graduated into a full blown web site of more than 140 pages (actually hundreds of A4 size pages) ! This is due to its growing popularity and tremendous encouragements from visiting Clipperheads from 100 countries worldwide, from North America, Central America, Caribbean, South America, Europe, Middle-East, Africa and Asia-Pacific. Thanx Clipperheads, you all made this happen !

What is Clipper ?

You may ask, what is this Clipper stuff ? Could Clipper be something to do with sailing as it is the name of a very fast sailing American ship in the 19th century ?

Well, Clipper or to be precise, CA-Clipper is the premier PC-Software development tool for DOS. It was first developed by Nantucket Corporation initially as a compiler for dBase3+ programs. Since then, CA-Clipper has evolved away from its x-base roots with the introduction of lexical scoping & pre-defined objects like TBrowse. As at today, the most stable version ofClipper is 5.2e while the latest version, 5.3a was introduced on 21 May 1996.

As at 11th November, 1996, an unofficial 5.3a fixes file was made available by Jo French. See the About CA-Clipper 5.3a section for more details. BTW, Jo French uploaded the revised 5.3a fixes file on 20th November, 1996.

Latest News

The latest news is that CA has finally released the long-awaited 5.3b patch on 21 May, 1997.

For 5.3b users, you must a take a look at Jo French's comments on unfixed bugs in 5.3b.

BTW, have you used Click ? If you're a serious Clipperprogrammer and need an excellent code formatter, Click is a natural choice. How to get it ? Simple, access Phil Barnett's site via my Cool Clipper Sites.

32-bits Clipper for Windows ?

Have you tried Xbase ++ ? Well, I have and compared to Delphi (my current Windows programming tool of choice), I'm still sticking to Delphi.

Anyway, you should visit the Alaska Home Page. Give it a chance and then draw your own conclusions !.

The Harbour Project

Is this the future of Xbase ? Take a look at at the Harbour Project

You are Visitor # ...

According to, you are visitor since 3 June 1996.

If you like or dislike what you see on this website, please drop me a line by clicking the email button at the bottom of this page or better still, by filling out the form in my guest book. If you are not sure what to write,click here to take a look at what other Clipperheads have to say.