Showing posts with label WVG. Show all posts
Showing posts with label WVG. Show all posts

Monday, February 14, 2011

Building a Harbour+gtWvg Project using hbmk2

Previously, I had written how one can build a Harbour+gtWvg project using XMate, the first part at
http://cch4clipper.blogspot.com/2009/04/using-harbourwvg-part-i.html

Having discovered the simplicity of using hbmk2 to compile a 32-bit version of DBU which runs in a true 32-bit Window, I tried to rebuild my previous gtWvg project. I succeeded to generate an EXE but on launching, it just starts and exit straightaway.

Fortunately. Pritpal came to my assistance and suggested adding  the following to FAS4WVG.HBP

-inc
-mt
 -w3
-es2
-gtwvg
-gui

and Hip Hip Hooray, I can now build a Harbour+gtWvg project without an IDE :-)

Tuesday, April 14, 2009

Can GTWVG work with xHarbour ?

CCH : I have been asked quite a few times as to whether GTWVG will compile with xHarbour.
Initially, I thought why not as Ron Pinkas was the one who mentioned about WVG in a response to me in the xHarbour Builder News Group. At that time, I was using the September 2008 Edition of xHarbour.com distro.

Today, Sudip Bhattacharyya revealed an email discussion with Pritpal regarding this matter.

Q. Is there any way to use xHarbour+wvg?

QUOTE by Pritpal Bedi

WVG as of now is not compilable with xHarbour. It is multi-windows, multi-threaded approach and some very fine new concepts which are only available in Harbour.

I had ported WVG to xHarbour but about 1.5 years before. That version is workable but you have to compile it with your own tools. Just look for xharbour/contrib/gtwvg folder in CVS.

Due to its limitations I am not contributing to xHarbour any more.

UNQUOTE

Sunday, April 12, 2009

How to create a new window with Harbour + WVG ?

Having gained the confidence of simple guifying of FAS4WVG without breaking codes and the sheer joy of not having to rewrite tonnes of codes due to the extensive use of ALERT(), I explored on how to create a new window from within the Main Console Window.

Based on my understanding, you can create and ultimately destroy a new Window by making a function call such as :-

MyNewWindow('Reindexing','MyIcon','N/W')

#include "hbgtinfo.ch"

FUNCTION MyNewWindow(cWindowCaption,cIconFile,cColor )
LOCAL oCrt
oCrt := WvgCrt():New( , , { -4,-4 }, { maxrow()-4,maxCol()-4}, , .t. )
oCrt:lModal := .T.
oCrt:icon := cIconFile
oCrt:create()
oCrt:resizable :=.T.
SETCOLOR(cColor)
CLS
// Needs #include "hbgtinfo.ch"
hb_gtinfo(HB_GTI_WINTITLE,cWindowCaption)

/* Your Clipper Codes goes here */

oCrt:destroy()

RETURN nil

Using Harbour+WVG +xMate - Part IV - CONCLUSION

From Part III of this series of articles, this is what I have achieved thus far.


How about adding features to the Console Window itself ?

This is how you change the caption and application icon :-

//This ensures that window is physically existent when any operation on console are requested.
CLS

// Add icon
hb_gtInfo( HB_GTI_ICONFILE, "ksred.ico" )

// Add Window Caption
hb_gtInfo( HB_GTI_WINTITLE, "FAS4WVG - Clipper... Clipper... Clipper" )


Is there a GUI Alert() that is fully compatible with CA-Clipper Alert() ?

Why not, with Pritpal's excellent programming skills, ALERT("Reindex ALL Files ?, {"No","Yes"}) gives you this Windows Dialog :-

Isn't this what you would have expected ?

Please note that the GUI Alert() available in the April 2009 Edition of xHarbour.com distro simply maps to MessageBox with OK as the only option. So if your code is nChoice:=ALERT("Reindex ALL Files ?, {"No","Yes"}), Pressing OK will never Reindex !

You will have no such issue with Pritpal's Harbour Ready to use Distro.


Actual Reindexing in action ...

The above was achieved using wvg_BoxRaised(), wvg_BoxRecessed() and wvgBoxGroupRaised().

CONCLUSION :

To quote Pritpal from one of of his email response

" GTWVG is meant to update your Clipper code to have Windows look and
feel without any code changes, just addition of few lines. If it were to mimick exact
GUI behavior then there are many other options, but you end up writing practically
everything, which is simply difficult if not impossible.

This is a matter of focus. "

What do we wish to achieve for our keyboard-loving customers ?

Well, we need to break the DOS barriers and avoid the need for the customers to be retrained in their daily usage of their mission-critical applications.

So, if you wish to avoid lots of re-programming your Clipper Codes and only want to provide your keyboard-loving customers with a simple GUI but clearly 32-bits Windows solution, IMHO, Pritpal's Harbour Ready to Use Distro that includes Harbour +WVG +xMate is the way to go...

If your needs are more onerous, may I suggest HMG or HMG Extended ?

Good Luck !

BTW, this is the final part of Using Harbour+WVG +xMate but I will continue to write on my experience with Harbour Ready to Use + GTWVG aka WVG


Saturday, April 11, 2009

Using Harbour+WVG +xMate - Part III

As you may recall from Part II, using Pritpal Bedi's Harbour Read to use Distro, I had successfully built FAS4WVG, a pure Win32 executable which does not run in a Command (DOS) Window.

Now, lets guify the DISPBOX() surrounding Main Menu & Messages by replacing

dispbox( 1, 0, 3, 79, B_DOUBLE )
dispbox( 22, 0, 24, 79, B_DOUBLE )

with :-

Wvg_BoxGroupRaised( 2, 1, 2, 77)
Wvg_BoxGroupRaised( 23, 1, 23, 77)

// Instruct GT to Repaint the Screen with GUI elements
Wvt_InvalidateRect( 0, 0, maxrow(), maxcol() )

The result is as follows :-


I then changed the default color to GREY to accentuate the 3D look and feel and added a
Wvg_BoxGroupRaised( 4, 1, 20, 77) for a centralised work area



You can see the DBEDIT() within a Boxraised(4,1,20,77) as follows :-


Same DBEDIT() but within a WVG_BoxRecessed

Same DBEDIT() but within a WVG_BoxRecessed() & WVG_BoxGroupRaised()



Next on Part IV

Friday, April 10, 2009

Using Harbour+WVG +xMate - Part II

If you recall from my previous article, this is what we got after recompiling with the Harbour Ready to Use Distro by Pritpal Bedi :-


Pretty disappointing, huh ! What you are looking at is a true 32 bit Windows application in a DOS window but how to convince your clients that this is indeed a Win32 executable ? This is where Pritpal Bedi comes to the rescue with his WVG library.

So where do we start to guify our Win32 'DOS looking" executable ?

This is what I have done, JUST add right after MAIN()

HB_GTSYS()

where

Function HB_GTSYS()
REQUEST HB_GT_WVG_DEFAULT
REQUEST HB_GT_WVT
REQUEST HB_GT_WGU
Return NIL

That's it !


Notice that the caption now shows FAS4WVG and not the Dos Prompt + path to FAS4WVG.
Hip... Hip... Hooray, no more DOS window !

Next on Part III

Thursday, April 9, 2009

Using Harbour+WVG +xMate - Part I

Using Harbour+HMG or HMG Extended is great but I still needed to provide a solution to quite a number of my existing users who prefer to use our apps in text mode but yet Win32 ready.These users just love to use the keyboard and loathe to use the mouse :-)

I did consider using WVW but since Budyanto does not have time to update his great GUI library, I decided to take a serious look at Harbour + WVG.

After playing with the xMate that came with Pritpal Bedi's Ready to use Harbour Distro, I finally managed to compile and build a Harbour+WVG version of FAS4DOS codenamed FAS4WVG. This is what I have done :-

1. Installed Pritpal's Ready to Use Harbour which resulted in a folder being created ie
c:\harbour_dev with the following sub-folders
dev_exes
dev_libs
dev_projects
dev_sources
harbour
mingw
xmate

2. I then copied the previously converted FAS4DOS codes (from 5.2e to xHarbour) into a new folder FAS4WVG under the dev_projects folder. I did this in order to save time as all UNRESOLVED EXTERNALS had already been dealt with as per my previous articles "Migrating from CA-Clipper 5.2e to xHarbour Part I, II & III "

Please note that there is also a default demowvg folder already there for your reference.

3. Moving to the xMate Directory, I launched xMate and created a new Project


4. What is important here is to choose
a) Project Type, default Executable
b) Environment (wvgMINGW, wvgBCC, wvgMSC, wvgWATCOM)
Nb. Only MINGW comes with this Pritpal's Distro
c) You may also choose to Import based on a Clipper Blinker/Exospace link script

5. Click OK and
a) Input Project name, in my case FAS4WVG
b) Input HOME Folder (where your project files reside)
c) Add Project Files


c) Save and both the XMate Editor and Project Manager are launched


6. Under the xMate Project Manager, you can choose to :-
a) Build Project
b) Build and Launch Project
c) Rebuild Project
d) Rebuild and Launch Project
e) Launch Project
f) Compile single source
g) Compile all sources

7. I then clicked (b) and starting getting errors mainly due to ambiguous references relating to getlists which I resolved by adding LOCAL getlist:={}

8. Then, I got the 'FATAL : Unknown Error - Check Output Console'

9. I then clicked the icon that had a ? over it and saw that I had a few errors such as
a) Unresolved external references
b) Duplicate decalarations

By checking to my original Blinker Link Script, I realised that I had inadvertently left out a prg whilst including a couple of redundant prgs.

10. Once resolved , bingo, FAS4WVG was finally built and launched


Next to add GUI features ...

Monday, March 16, 2009

GTWVG : Update by Pritpal Bedi

Hi Everybody

Here is the ChangeLog entry I committed today, may it interest you anyway;

2009-03-15 16;42 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

* harbour/contrib/gtwvg/hbgtwvg.ch
+ #define HB_GTI_SETPOSANDSIZE
+ #define HB_GTI_HB_GTI_REFRESH
+ Two more events to manage new CUI-GUI objects.

+ #define GOBJ_OBJSTATE_*
+ #define GOBJ_OBJDATA_*
+ #define GOBJ_IMAGESOURCE_*
+ Constants to manage CUI=GUI objects.

* harbour/contrib/gtwvg/gtwvg.h
* harbour/contrib/gtwvg/wvggui.h
! Updated to be compilable for WinCE builds.

* harbour/contrib/gtwvg/gtwvg.c
! Updated to honor WinCE builds.
! Implemented double-buffering of console. Now flickering
should be the topic of the past.

* harbour/contrib/gtwvg/wvggui.c
! Updated to honor WinCE builds.

* harbour/contrib/gtwvg/wvgcuig.c
+ Implemented a highly optimized GUI controls for CUI consoles.
Implementation includes auto-destruction, data-substitution,
enable/disable feast, etc. These controls are almost identical
which are available with Wvt_Draw*() namespace but with a
great difference that these are tied to the urrent GT and
are handelled transparently by the GT itself. Developer
has only to define it. The only requirement is that
SaveScreen()/RestScreen() needs to be changed to new
Modal GT window. Appln screens will never get blurred. It
also employs optimized double-buffering and hence almost
eliminates screen flickering.

* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvgsink.c
* harbour/contrib/gtwvg/wvgutils.c
* harbour/contrib/gtwvg/wvgwin.c
! Updated to honor WinCE builds.

* harbour/contrib/gtwvg/wvgcrt.prg
! A couple of methods fine-tuned.
! Modal GT’s more responsive to user needs.

* harbour/contrib/gtwvg/tests/demowvg.prg
! Demonstrated the latest implemention of CUI-GUI controls. See below.
Please try option in the main menu.
Also note the usage of Modal GT to simulate Alert() in new window.
Every GUI object returns a handle to it which may be used to
change its parameters.

; TOFIX( WINCE BUILDS ) - GetSystemDirectory()


/* IMPLEMENTATION OF CUI-GUI CONTROLS - A CODE PREVIEW



#xTranslate Alert( => MyAlert(

PROCEDURE GCUIConsole( oCrt )
LOCAL dDate ;= date()
LOCAL cName ;= pad( ’Some Usefule Name’ , 35 )
LOCAL cAdd1 ;= pad( ’Linda Goldman Avenue’, 35 )
LOCAL cAdd2 ;= pad( ’Excellent Street’ , 35 )
LOCAL cAdd3 ;= pad( ’Suit #415’ , 35 )
LOCAL nSlry ;= 9000
LOCAL nColGet ;= 8
LOCAL GetList ;= {}
LOCAL cLabel ;= "VOUCH, that GROWS with you"
LOCAL oTab, oStat, hBoxR, hTxt

SET SCOREBOARD OFF

SetColor( "N/W,N/GR*,,,N/W*" )
CLS
hb_gtInfo( HB_GTI_WINTITLE, "WVG Simplified yet Powerful CUI-GUI Console!" )

@ MaxRow(), 0 SAY PadC( "Navigate the Gets", maxcol()+1 ) COLOR "W+/B"

@ 2, nColGet SAY "<>"
@ 5, nColGet SAY "<" + PadC( "Name" , 33 ) + ">"
@ 8, nColGet SAY "<" + PadC( "Address", 33 ) + ">"
@ 15, nColGet SAY "<>"

@ 3, nColGet GET dDate ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 1 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,0 ) ), .t. }
@ 6, nColGet GET cName ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 2 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,0 ) ), ;
Wvg_SetGObjState( hBoxR, 3 ), .t. }
@ 9, nColGet GET cAdd1 ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 3 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,255 ) ), .t. }
@ 11, nColGet GET cAdd2 ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 4 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,255 ) ), ;
Wvg_SetGObjState( hBoxR, 1 ), .t. }
@ 13, nColGet GET cAdd3 ;
WHEN {|| Wvg_SetGObjData( hTxt, 6, RGB( 198,21,140 ) ), .t. }
@ 16, nColGet GET nSlry PICTURE "@Z 9999999.99" ;
WHEN {|| Wvg_SetGObjData( hTxt, 6, RGB( 0,0,0 ) ), .t. }

// The only additional calls to render your console GUI
//
// The GETLIST ; This can be embedded via @ GET preprocessor command
aEval( GetList, {|oGet| Wvg_BoxGet( oGet;Row, oGet;Col, Len( Transform( oGet;VarGet(), oGet;Picture ) ) ) } )
//
hBoxR ;= Wvg_BoxRaised( 1,2,18,49, {-5,-5,5,5} )
//
Wvg_BoxRecessed( 1,2,18,49 )
//
// Wvg_BoxGroup( 2,4,17,47 )
//
Wvg_BoxGroupRaised( 2,4,17,47, {-7,-7,7,7} )
//
hTxt ;= Wvg_TextBox( 3,57,16,75, {10,10,-10,-10}, ’This is first TextBox Line!’, 2, 2 )
//
Wvg_Image( 15,36,16,42, {-3,-3,3,3}, GOBJ_IMAGESOURCE_FILE, ’Vouch1.bmp’ )
//
Wvg_BoxRaised( 15,36,16,42,{-2,-2,2,2} )
//
Wvg_ShadedRect( 1,54,18,79, { -5,-5,5,5 }, 0, {65000,21000,7000,56000}, {255,32255,16000,32500} )
//
Wvg_BoxRaised( 1,54,18,79, {-5,-5,5,5} )

// Instruct GT to Repaint the Screen with GUI elements.
oCrt;refresh()

// Issue the read
READ

Alert( ’How did you like the "Alert" replacement?’, { ’WOW’,’OK’,’OOps’} )

RETURN
/*----------------------------------------------------------------------*/
#xUntranslate alert( =>

FUNCTION MyAlert( cMsg, aOpt )
LOCAL nSel, oCrt

oCrt ;= WvgCrt();New( , , { -1,-1 }, { 9, MaxCol()-6 }, , .t. )
oCrt;lModal ;= .t.
oCrt;icon ;= "dia_excl.ico"
oCrt;create()
oCrt;resizable ;= .t.

SetColor( ’N/W’ )
CLS
hb_gtInfo( HB_GTI_WINTITLE, cMsg )

nSel ;= Alert( cMsg, aOpt )

oCrt;destroy()

RETURN nSel

#xTranslate Alert( => MyAlert(
/*----------------------------------------------------------------------*/
STATIC FUNCTION FetchText( nMode )
LOCAL cText

DO CASE
CASE nMode == 1
cText ;= ’Do you know Harbour is gaining a popularity what Clipper enjoyed at one time! ’
cText += ’Enjoy it.’
CASE nMode == 2
cText ;= ’Do you know Harbour can host pure console, cui+gui console, pure gui consoles applications? ’
cText += ’This demonstration is a proof of that.’
CASE nMode == 3
cText ;= ’Do you know Harbour is a multi-gt, multi-window, multi-thread compiler far superior than others in the market! ’
cText += ’And is FREE.’
CASE nMode == 4
cText ;= ’Enjoy and contribute to the project any way you can. Develop, Debug, Support, and spread a word of mouth!’
ENDCASE

RETURN cText
/*----------------------------------------------------------------------*/
*/

;TODO - Write a comprehensive help to exploit CUI-GUI functionality.
Will do in a few days.


Here is the output;

Wednesday, March 4, 2009

Harbour Ready-to-use : Pritpal Bedi

WELCOME

http://www.vouch.info/downloads/HarbourDev_10523_2009-03-04.exe

This is Harbour's ready-to-use distibution planned to be released once in a month including the changes committed to SVN till the date of release. This is not the rule. I may post more than once in a month if there are major commits and/or some important feature is added/modified.

This distro is aimed at newbies who find it difficult to start with Harbour though everybody can take advantage to the maximum.

Please note that this is not an official release. So you may expect bumps here-and-there. My efforts will focus on the facts that release maintain a standard to let the applns compile properly.

Every release will bear the "Revision No" and "Date" in its setup name as -
HarbourDev_10523_2009-03-04.exe which will facilitate to identify upto which commit this release contain.

The tree structure ( outlined below ) can be used for production level development scenario. It contains batch files to get Harbour binaries
from SVN tree for four compilers. As you can now compile your applns with different compilers, this enhances your productivity level to judge which compiler is giving you the fastest and optimum appln.

To keep the tasks simple, I am assuming drive "C" the development drive where Harbour SVN tree and "harbour_dev" tree is hosted. All paths in the
batch files and xMate project files points to c:\harbour and C:\harbour_dev.

This distribution includes only binaries. Please download SVN tree if you need sources or want to play with the latest commits. It is not necessary
for your applications.

In case you decide to have latest SVN binaries then host it on drive C as module name "harbour". Then invoke one of the makegnu_*.bat, depending
on the compiler of your choice. It will place harbour binaries in respective subfolder of "c:\harbour_dev".

This distribution includes MINGW compiler under c:\harbour_dev\mingw folder as its root. So one is able to build appln for this compiler without any extra effort. You can download other compilers and place them in respective folders in c:\harbour_dev, i.e., Borland's BCC under c:\harbour_dev\bcc ( no suffix after bcc ), Sybase's Open Watcom under c:\harbour_dev\watcom, Microsoft's Visual C++ under c:\harbour_dev\msvc. Once installed, just invole respective makegnu_*.bat. Harbour binaries will be in place.

As I has been working with xMate since its birth way back in 2004, I have choosen it to be Project Builder for this distribution. You are free to deploy whatever you are accustomed to.

As a demo appln I have selected harbour/contrib/gtwvg/tests/demowvg.prg. This demo unfolds Harbour power in depth plus different ways one can employ to migrate his/her Clipper applications to GUI world strating with
intermediatery semi GUI proto and culminating to pure GUI proto. This demo also deploys the in-development Xbase++ Parts clone whaich may attract your attention. Moreoever, this demo demonstrates MT ( multi-threading ) and multi-window GT which can be a big productivity boost right from the begining.

Following is the tree structure this disto contains.

c:\harbour_dev\

harbour\
bcc\
bin
include
lib
msvc\
bin
include
lib
mingw\
bin
include
lib
watcom\
bin
include
lib

bcc\
* distro tree
msvc\
* tree
mingw\
* tree
watcom\
* tree

xmate\
*.files | folders
/
wvgBCC.env ( tied with demowvgBCC.xhp )
wvgMSVC.env ( tied with demowvgMSVC.xhp )
wvgMINGW.env ( tied with demowvgMINGW.xhp )
wvgWATCOM.env ( tied with demowvgWATCOM.xhp )

dev_projects\
demowvg\
demowvgBCC.xhp
demowvgMSVC.xhp
demowvgMINGW.xhp
demowvgWATCOM.xhp

demoxbp\
demoxbp.xhp
* folders
developers_own_folders\
developer_project.xhp

dev_sources\
demowvg\
*.files
tests\
*.files

dev_libs\
# All together - it is a better design

dev_exes\
# All together of by project
May be it is dependant on other resource files

ChangeLog ( Harbour SVN ChangeLog : Binaries Upto : Top Few Lines )

make.exe ( mingw32-make.exe )

bcc32.cfg ( Bcc Compiler Confuration : bcc\bin )
tlink32.cfg ( BCC Linker Configuration : bcc\bin )
wlink.lnk ( Watcom Linker Configuration : watcom\binnt )

[ invoke it to get latest Harbour SVN binaries ]
/
makegnu_BCC.bat
makegnu_MSVC.bat
makegnu_MINGW.bat
makegnu_WATCOM.bat

Enjoy

Pritpal Bedi, a student of software analysis and design

http://www.vouch.in | Vouch, the software that GROWS with you
http://www.vouch32.com | Home of Vouch32 ActiveX Server
http://www.vouchcac.com/vouch32/vouch32.htm | A Free Windows Extended
Utilities Library for Clipper, Xbase++ and (x)Harbour
http://www.help.vouch.info | Online Vouch Help
http://www.harbour.vouch.info | Online Harbour Help

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 counter.digits.com 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 counter.digits.com, 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.