Wednesday, April 29, 2009

The HMG 1.6 Extended Edition Build 66 - Published

Hi All,

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

http://hmgextended.com/files/CONTRIB/hmg-1.6-66-setup.zip

and the Lite build 66 at the following URL:

http://hmgextended.com/files/CONTRIB/hmg-1.6-66-setup-lite.zip

There is the following changelog for this build below:

2009/04/29: Build 66 (HMG 1.6 Extended Edition) Published.
* Fixed: There isn't action on button click in the BTNTEXTBOX control from resources
(introduced in the build 55). Contributed by Janusz Pora <januszpora@onet.eu>
* Fixed: Multiple execution of OnChange event at changing row and column by mouse click
in the celled GRID control.
Based upon a code borrowed from an Official HMG 2.8.6.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see demo2.prg in folder \samples\Basic\Grid_7)
* Changed: MiniGUI error's handling function for reducing of the library size.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
* Enhanced: The BTNTEXTBOX control supports an optional DisableEdit clause now.
Requested by Jozef Rudnicki <j_rudnicki@wp.pl>.
Contributed by Janusz Pora <januszpora@onet.eu>
(see demo in folder \samples\Basic\BtnTextBox)
* Enhanced: Maintenance of BLINK property for Label control at runtime:
- function syntax:
SetProperty ( Form, Control, 'Blink', .T. )
- pseudo-OOP syntax:
Form.Label.Blink := .F.
Requested by Pedro Chanis <drinol@yahoo.com>.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see demo in folder \samples\Basic\Blink)
* Updated: Cputype library for compatibility with a last Harbour changing.
Contributed by Grigory Filatov <gfilatov@freemail.ru> (see in folder \Lib)
* Updated: Slovenian language translation in HBPrinter library.
Contributed by Mitja Podgornik <yamamoto@rocketmail.com>.
* Updated: PropGrid library source code:
- New: Clause DISABLEEDIT for item type COLOR, FONT, IMAGE, SIZE, ARRAY, FILE, FOLDER, USERFUN
to execute get value by button function only.
Contributed by Janusz Pora <januszpora@onet.eu>
(see Changelog.txt in folder \Source\PropGrid and
demo3.prg in folder \samples\Advanced\PropGrid)
* Updated: Harbour Compiler 1.1.0dev (SVN 2008-04-27 19:17):
* New: HaruPDF library source code (see in folder \Source\HaruPDF).
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(look at ReadMe.txt in folder \harbour and WhatsNew.txt in folder \harbour\doc)
* Updated: HMGS-IDE v.0.8.4. Project Manager and Two-Way Visual Form Designer.
Contributed by Walter Formigoni <walter.formigoni@uol.com.br>
(look at changelog.txt in folder \Ide)
* New: 'Resolution Adjustment' sample. Contributed by Christian T. Kurowski <xharbour@wp.pl>
(see demo2.prg in folder \samples\Advanced\

FitToDesktop)
* New: 'Haru PDF' sample is based upon the Haru Free PDF Library 2.0.8 from http://libharu.sourceforge.net.
Contributed by Pierpaolo Martinello alice.it>
(see in folder \samples\Advanced\HaruPDF)
* Updated: 'FDF Form Filler' sample. Contributed by Pierpaolo Martinello alice.it
(see in folder \samples\Advanced\FDF)
* Updated: EZTwain sample: EZTWAIN.DLL v1.19 2009.02.20 from http://www.dosadi.com.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see in folder \samples\Advanced\EZTWAIN)
* Updated: 'WAIT WINDOW' sample (see demos in folder \samples\Basic\WAIT_WINDOW).
Based upon a code borrowed from an Official HMG 2.8.8.

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

--
With Best Regards,
Grigory Filatov
[MiniGUI Team]

Monday, April 27, 2009

A template to transform to GUI using GTWVG by Massimo Belgrano

CCH : I think this article by Massimo Belgrano posted on 25/4/09 at the Harbour Project Main Developer List is pretty useful fo users of Harbour +GTWVG


Date: Sat, 25 Apr 2009 17:04:14 +0200
From: Massimo Belgrano <mbelgrano@deltain.it>
Subject: [Harbour] A template for add to a CUI application to transorm
in GUI using gtwvg
To: "Harbour Project Main Developer List."
<harbour@harbour-project.org>

A template for transform in gui a gtwvg application today and i hope
that in future also gtqtg

#INCLUDE "HBGTINFO.CH"
function main
HB_GTSYS()
set color to "N/W,N/BG,,,N/W*"
cls
hb_gtInfo( HB_GTI_ICONFILE, "sample.ico" )
hb_gtInfo( HB_GTI_WINTITLE, "Programm Title" )
Hb_GtInfo( HB_GTI_SELECTCOPY,.T.)
Hb_GtInfo( HB_GTI_RESIZABLE, .T. )

..
return

Function HB_GTSYS()
REQUEST HB_GT_WVG_DEFAULT
Return NIL


compile your apllication with
hbmk2 mio.prg -gtwvg -gui

Please share any idea
for menu is better use vtg class or xbp?

--
Massimo Belgrano

Saturday, April 18, 2009

The Harbour MiniGUI 1.6 Extended Edition (Build 65) setup is published

Hi All,

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

http://hmgextended.com/files/CONTRIB/hmg-1.6-65-setup.zip

and the Lite build 65 at the following URL:

http://hmgextended.com/files/CONTRIB/hmg-1.6-65-setup-lite.zip

There is the following changelog for this build below:

2009/04/15: Build 65 (HMG 1.6 Extended Edition) Published.
* Fixed: The problem with Switch value in the function _GetBrowseFieldValue() at xHarbour compiler
(introduced in the build 63). Reported by Mr. Winfax <fred@cocohost.com>.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
* Enhanced: The GRID control supports an optional VALIDMESSAGES clause.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see demo5.prg in folder \samples\Basic\Grid_3)
* Enhanced: The GRID control supports an optional CELLED / CELLNAVIGATION clause.
The Value property is a two element array (row,column) for celled grid.
Based upon a code borrowed from an Official HMG 2.8.2-2.8.3.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see demo in folder \samples\Basic\Grid_7)
* Enhanced: 'DynamicBackColor' and 'DynamicForeColor' Browse and Grid properties
accepts the color arrays now also, being, this way, consistent with MiniGUI
general color handling (for compatibility with Official HMG).
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see demo2.prg in folder \samples\Basic\Grid)
* Enhanced: The MultiLine InputBox supports resizing now.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see demo in folder \samples\Basic\InputBox)
* Updated: Synchronized an Extended HMG with an Official HMG 2.7.0-2.7.2:
- Fixed: DRAW GRAPH (pie type) problem with low values (about 0%).
- Changed: DRAW GRAPH (pie type) accepts bigger than 7 digits values
now (Thanks to Esgici).
- Enhanced: Grid Control: 'This.CellValue' is writable now, so, you can
change the value of the cell being currently edited from inside 'Valid'
cell procedure (see demo5.prg in folder \samples\Basic\Grid_3).
- New: DRAGITEMS property for LISTBOX control.
This property allows to user to reorder items in a ListBox
by dragging it (see demos in folder \samples\Basic\Listbox_2).
- New: 'System object' sample (see in folder \samples\Basic\CLIPBOARD).
- New: 'WAIT WINDOW' sample (see demos in folder \samples\Basic\WAIT_WINDOW).
- Fixed: Mysql samples. Report and fix by Sudip (see demos in folder \samples\Basic\MYSQL).
* Updated: Adaptation FiveWin Class TSBrowse 7.0 in HMG:
- New: ADORDD support.
Contributed by Janusz Pora <januszpora@onet.eu>
* Updated: Harbour Compiler 1.1.0dev (SVN 2008-04-14 10:52):
* Updated: AdoRDD library source code (see in folder \Source\AdoRDD).
Contributed by Janusz Pora <januszpora@onet.eu>
* Updated: MySql library source code (see in folder \Source\HbMySql):
- Renamed all functions to standard mysql equivalents.
This move allows to use hbmysql and hbodbc in the same app.
* Updated: HbODBC library source code (see in folder \Source\HbODBC).
* Updated: HbOLE library source code (see in folder \Source\HbOLE).
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(look at ReadMe.txt in folder \harbour and WhatsNew.txt in folder \harbour\doc)
* Updated: HMGS-IDE v.0.8.3. Project Manager and Two-Way Visual Form Designer.
Contributed by Walter Formigoni <walter.formigoni@uol.com.br>
(look at changelog.txt in folder \Ide)
* Updated: HbSQLite3 library source code (see in folder \Source\HbSQLite3):
* Added support for sqlite_exec() callback.
Now the 3rd parameter is an optional callback that is invoked
once for each row of any query results.
* Now we can pass name of logfile as third parameter of sqlite3_trace(), sqlite3_profile().
+ Added sqlite3_set_authorizer() - Compile-Time Authorization Callbacks.
+ Added sqlite3_busy_handler() - A Callback To Handle SQLITE_BUSY Errors.
+ Added sqlite3_progress_handler() - Query Progress Callbacks.
+ Added sqlite3_commit_hook(), sqlite3_rollback_hook() - Commit And Rollback Notification Callbacks
+ Added sqlite3_backup_*() API for backups purposes.
+ Added sqlite3_initialize(), sqlite3_shutdown(), sqlite3_interrupt(),
sqlite3_status(), sqlite3_db_status(), sqlite3_stmt_status(),
sqlite3_sql(), sqlite3_extended_errcode(), sqlite3_threadsafe(),
sqlite3_memory_used(), sqlite3_memory_highwater().
! Fixed sqlite3_table_column_metadata(

).
- Temporary disabled sqlite3_db_handle().
+ Added samples for demonstration of new possibilities.
Warning: The HbSQLite3 is incompatible with xHarbour compiler after these changes.
Contributed by Petr Chornyj <myorg63@mail.ru>
(see console demos in folder \samples\Advanced\SQLITE)
- updated for using of newest SQLITE3 version 3.6.13
Contributed by Grigory Filatov <gfilatov@freemail.ru>
* New: 'ADORDD' sample with using a TBROWSE control.
Contributed by Janusz Pora <januszpora@onet.eu>
(see in folder \samples\Basic\ADORDD_4)
* New: 'Transactions in DBF' sample. Based upon a Table class of the Harbour contrib library xHb.
Requested by Anibal Villalobos Guillen <anibalgvillalobosg@yahoo.com>.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see in folder \samples\Advanced\Transactions)
* Updated: 'Charts ADO' sample for Win9X support.
Requested by Alexey Gustow gustow33@mail.ru>.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see in folder \samples\Basic\Charts)
* Updated: 'MiniSql Basic' sample for compatibility with MySql library changes.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see in folder \samples\Advanced\MiniSql)
* Updated: 'MySql Database Driver' sample.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see demo in folder \samples\Advanced\MySqlDD)
* Updated: 'WMI Service usage' sample.
Contributed by Grigory Filatov <gfilatov@freemail.ru>
(see in folder \samples\Advanced\WMI_Service)

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

--
With Best Regards,
Grigory Filatov
[MiniGUI Team]

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

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.