Saturday, April 30, 2011

How to 'SVN' a copy of Harbour ?

CCH : From the Harbour-Users Group

Q.   I'd like to get a complete copy of Harbour on my machine for
testing (I already have xHarbour).

  I can easily use get an update of xHarbour from SVN

  What is the SVN command for Harbour please ?

Thank you.


A.  Try:

svn co c:\svn

  Where c:\svn is the folder where you want to download the source tree.


Hw to SVN and BUILD Harbour using MingW from scratch on Windows box.

Hello Mel,

  Seems that you successfully built Harbour with MingW!
  I had prepared a simple way for new users to learn how to SVN and BUILD Harbour using MingW from scratch on Windows box.
  Please look this:
  It is just a simple way of doing the same you are doing - for those who would like to do it but don't know where to start.


Tuesday, April 19, 2011

Harbour/xharbour Diff : 9/57 - FUNCTIONS WITH VARIABLE NUMBER OF PARAMETERS by Przemyslaw Czerpak

Both compilers supports them though xHarbour is limited to all parameters
and does not support unnamed parameters. In Harbour you can declare some
named parameters and then unnamed just like in many other languages, f.e.:
func f( p1, p2, p3, ... )
The unnamed parameters can be used in different statements passing them
by '...' operator, f.e. as array items:
proc main()
AEval( F( "1", "2", "A", "B", "C" ), {|x, i| qout( i, x ) } )
func f( p1, p2, ... )
? "P1:", p1
? "P2:", p2
? "other parameters:", ...
return { "X", ... , "Y", ... "Z" }
or as array indexes:
proc main()
local a := { { 1, 2 }, { 3, 4 }, 5 }
? aget( a, 1, 2 ), aget( a, 2, 1 ), aget( a, 3 )
func aget( aVal, ... )
return aVal[ ... ]

or as function parameters:
proc main()
info( "test1" )
info( "test2", 10, date(), .t. )
proc info( msg, ... )
qout( "[" + msg +"]: ", ... )

The '...' operator saves references when push parameters and it can be
used also in codeblocks, f.e.:
bCode := { | a, b, c, ... | qout( a, b, c ), qout( "[", ..., "]" ) }

All parameters can be accessed also using hb_aParams() function but
in xHarbour it works correctly only for functions which does not use
any local parameters or declared with variable number of parameters
or when number of declared parameters is not smaller then number of
passed parameters. This code illustrates it:
proc main()
proc p1
? procname()+"(), parameters:", pcount()
aeval( hb_aParams(), {|x,i| qout(i,"=>",x) } )
proc p2
local l
? procname()+"(), parameters:", pcount()
aeval( hb_aParams(), {|x,i| qout(i,"=>",x) } )
proc p3(x)
? procname()+"(), parameters:", pcount()
aeval( hb_aParams(), {|x,i| qout(i,"=>",x) } )
proc p4(...)
? procname()+"(), parameters:", pcount()
aeval( hb_aParams(), {|x,i| qout(i,"=>",x) } )
proc p5(a,b,c,d,e)
? procname()+"(), parameters:", pcount()
aeval( hb_aParams(), {|x,i| qout(i,"=>",x) } )

In xHarbour it's only possible to declare all parameters as unnamed, f.e.:
func f( ... )
and then access them using hb_aParams() or PVALUE() (in Harbour it's called
HB_PVALUE()) function. There is no support for named parameters and ...

In xHarbour due to reverted behavior of references stored in array items
assign operation to items in array returned by hb_aParams() changes
corresponding parameters passed by reference. It does not happen in
Harbour where item references stored in arrays work like in Clipper.

Tuesday, April 12, 2011

Harbour MiniGUI 1.9 Extended Edition (Build 95) Released

CCH : From the HMG Extended Forum

Hi All,

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

There is the following changelog for this build:

2011/04/12: Build 95 (HMG 1.9 Extended Edition) Published.
* Fixed: Problem with assigning the plain text to the RichEdit control
(introduced in the build 94).
Bug was reported by Paolo Russignan <>.
Contributed by Grigory Filatov <>
* Fixed: Cleaning of warning at BCC 5.8.2 in the source\c_richeditbox.c
(introduced in the build 94).
Problem was reported by Rossine <>.
Contributed by Grigory Filatov <>
* Fixed: Timer was fired at the 'Value' property changing in the disabled state.
It exists in the official version too.
Problem was reported by Jaroslav Janik <>.
Contributed by Grigory Filatov <>
* Enhanced: Panel window supports now the conjoint form of spelling for events
and properties (OnInit, OnRelease, VirtualWidth, VirtualHeight,
FontName, FontSize) at definition similar to others kind of windows.
Contributed by Grigory Filatov <>
* Enhanced: 'Address' property of Hyperlink control can contain the procedure name:
- ADDRESS "proc:\\MyProc()" for execute the user function.
Based upon a contribution by Sasha Savov ;
(see demo in folder \samples\Basic\HYPERLINK)
* Changed: Fixed warnings at the compilation in MinGW32 (tested for 3.18).
Contributed by Grigory Filatov <>
* Updated: HBPrinter library v.2.24 (see source in folder \source\HbPrinter):
- Fixed: C-code cleaning for warnings with MinGW32.
Contributed by Grigory Filatov <>
* Updated: MiniPrint library (see source in folder \Source\MiniPrint):
- Fixed: C-code cleaning for warnings with MinGW32.
Contributed by Grigory Filatov <>
* Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG:
- Fixed: Missing ADS tag order support in the SetDbf method.
Contributed by Igor Nazarov.
- Fixed: Code cleaning for warnings with MinGW32.
Contributed by Grigory Filatov <>
* Updated: Harbour Compiler 2.1.0rc2 (SVN 2011-04-10 12:43).
Contributed by Grigory Filatov <>
(look at ReadMe.txt in folder \harbour)
* Updated: HMGS-IDE v. Project Manager and Two-Way Visual Form Designer.
Contributed by Walter Formigoni <>
(look for what's new at changelog.txt in folder \Ide)
* New: 'Tone function via sound card' sample.
Based on code contributed by Andi Jahja <>.
Contributed by Grigory Filatov <>
(see in folder \samples\Advanced\Tone)
* Updated: 'TBrowse SpecHeader' sample for compatibility with TSBrowse 9.0 syntax.
Contributed by Janusz Pora <>
(see in folder \samples\Advanced\Tsb_
* Updated: 'Multi Richedit' sample.
Contributed by Janusz Pora <>
(see in folder \samples\Advanced\RicheditEx_2)

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

Your comments/feedback are welcome!

Best Regards,
Grigory Filatov
[MiniGUI Team]

Thursday, April 7, 2011

The Harbour HowTo Tutorial Rev. [51] IS BORN !

CCH : From the Harbour Developers Group

The Harbour HowTo Tutorial Rev. [51] WAS BORN !
It is available at:
Giovanni Di Maria

This tutorial in now very small, but in future it will become

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.