Monday, December 26, 2011

hbIDE as at Today

hbIDE's growth can be summarized as:

what it is today,
what is proposed,
what is on todo list,
its strengths, and
pitfalls

What it is today

Implements: multiple projects edit,compile,link cycles with multiple compilers from within single instance.
Implements: tracking the compile/link errors and opening the source containing thus error in the editor with offending line under cursor.
Implements: multiple editing sessions within a single instance with easy navigation and cut/copy/paste portability amongst them.
Implements: high-performance edit instances with a bunch of features, such as, intelligent auto-indentation; in-build keyword capitalization (.prg); ability to switch on/off line-number display; selected block operations: left-right indentation, single-line comments, multi-line comments, double to single quotes, single to double quotes; case conversions: lower to upper, upper to lower, invert cases; line operations: duplicating a line, deletion of line, moving lined in either direction - up/down; and many more.
Implements: splitting one edit instance into multiple horizontal and/or vertical windows to edit different parts of the same source simultaneously.
Implements: auto-disaster-recovery for every editing instance per minute interval ensuring the maximum amount of loss confined to a minute's work only.
Implements: code-skeleton definition and rendering to next levels with user-defined macros and variables in addition to hbIDE defined macros.
Implements: tagging of functions prototypes for next levels of function lookups and other "intellisense" features for multiple projects simultaneously.
Implements: a reasonable level of "intellisense" providing code-completion lists, on-the-spot function prototype tips, full-blown function overlook, and more.
Implements: a powerful "Find-in-files" feature accepting currently-opened edits, contained projects, folders  on the disk including sub-folders, options for plain-text or regular expression search, and finally opening the source with currently clicked search-text highlighted in the editor.
Implements: a unique "Document Viewer" which pulls the NANFORUM documentation format compliant .txt files from a "root folder" and tree and presents the contents in a navigable browser with options to - "Print", "Save as .pdf", and more.
Implements: a unique way to write documentation for functions contained in the editing sessions with options to insert the same into the source at appropriate place or save as a NANFORUM documentation format compliant .txt file on disk which, in-turn, is fully compliant to be viewed in "Document Viewer" if opted as such.
Implements: out-of-the-box syntax highlighting for .prg, .c, .cpp, .ch, .h, sources with a provision to set the highlighting themes in the hands of the user as per needs and offering a bunch of pre-defined themes plus interface to inject your own.
Implements: intelligent "book-marks" with visual elements to define, locate and destroy - with least efforts - almost hassle free.
Implements: to be used as simple text-editor, a project maintainer and/or builder, or both.
Implements: "Tools & Utilities" features which extends hbIDE to take use of any other program, including the DOS prompt, to be executed with parameters from within hbIDE and in a detached manner. Probably it will be wise to extend it to accept parameters comprised of properties of hbIDE components, such as, source file name on disk opened in current editor instance.
Implements: saving the current state of hbIDE when exited normally and restores the exact same environment at next run, including the editors state per cursor position, the size and position of the main frame, and lot more.
Implements: an interface to define short-cut macros just like xMate plus including some extended functionality.
Implements: three types of selection modes: 1. Stream Selection  2. Column Selection  3. Line Selection. All type of blocks are persistent across files. Stream selection mode is a standard text selection protocol implemented by every text editor in the world. Column selection has some peculiar application and Line selection mode offer yet another functionality. All types offer standard cut/copy/paste behavior. Paste operation honors the selection mode, f.e., a block selected under column mode will be pasted as column block. Line blocks overwrite the exiting lines if pasted.
Implemented: a simple yet powerful interface to hook third-party plugins designating it truely extensible.
Implements: integration with Visual Source Safe ( VSS ), version control system.

What is proposed

Visual debugger - someone has to jump in as I know a little about debuggers and their behavior
Form editor - which is out of question until we have a complete GUI framework in place.
Object browser - what is this ?
Version control (SVN) integration - should be easy; need to explore the command-line commands.

What is on todo list

Wizard based project creation for different compilers - xHarbour, Clipper, Xbase++, Flagship, Clip; for multiple C compilers.

Strengths

An out-of-the-box experience for Xbase dialect programmers without the hassles of writing tough scripts to achieve high levels of productivity.
An all-in-one, composite-components oriented, highly desktop real-estate conscious interface leveraging the levels of productivity to highest extent.
With a programmer-oriented approach shedding any inclination of commercial orientation.
With highest possibilities to be extended by anyone who does not have any interaction with C language.

Pitfalls

High memory-intensive back-bone.





More at http://hbide.vouch.info/?and_as_of_now.htm

Updated HMGS-IDE 1.1.0.3 Beta - 26th December 2011

Hi All,

The updated HMGS-IDE 1.1.0.3 Beta binary and sources with minor fixes are published at the following URL:
http://www.hmgextended.com/files/HMGS-IDE/ide.zip

You can update this build via clicking 'Update' menuitem in the main
menu 'Help'.

--
Kind Regards,
Grigory Filatov
[MiniGUI Team]

Wednesday, November 23, 2011

Harbour MiniGUI Extended Edition 2.0.4 Released on 23 Nov 2011

Hi All,

The Harbour MiniGUI Extended Edition 2.0.4 setup is published at the following
URL:

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

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

http://hmgextended.com/files/CONTRIB/hmg204-mingw.zip

There is the following changelog for this build:

2011/11/23: HMG Extended Edition 2.0.4 Published.
* Enhanced: COMPRESS and UNCOMPRESS commands supports an optional
FILEPROGRESS clause.
Syntax:
- COMPRESS "MyBase.dbf" TO "Backup.zip" ;
BLOCK {|cFile, nPos| ProgressUpdate(cFile, nPos)} ;
FILEPROGRESS {|nPos, nTotal| ProgressFile(nPos, nTotal)}
- UNCOMPRESS "Backup.zip" EXTRACTPATH ".\" ;
BLOCK {|cFile, nPos| ProgressUpdate(cFile, nPos)} ;
FILEPROGRESS {|nPos, nTotal| ProgressFile(nPos, nTotal)}
Contributed by Grigory Filatov <gfilatov@...>
(see demo2.prg in folder \samples\Basic\Zip)
* Changed: Image scale in the PRINT GRAPH command is a similar at WinXP now
as in the other OS. Modified an image aspect ratio for HbPrinter
library.
Contributed by Grigory Filatov <gfilatov@...>
(see demo2.prg in folder \samples\Basic\GraphPrint)
* Updated: HBPrinter library v.2.27 (see source in folder \source\HbPrinter):
- Fixed: revised unlock global vars in the printer dialog C-code.
- Fixed: revised using of font 'Arial Narrow' in the preview toolbar.
Problem was reported by Gyula Bartal <gybartal@...>.
Contributed by Grigory Filatov <gfilatov@...>
* New: SQLite3Facade library source code (see in folder
\Source\SQLite3Facade).
This library provides a convenient interface that make easy the most
common operations. Contributed by Daniel Goncalves

Adapted for Minigui Extended by Grigory Filatov <gfilatov@...>
(see demo in folder \samples\Advanced\SQLITE_3)
* Updated: HbSQLite3 library source code (see in folder \Source\HbSQLite3):
- update for using SQLITE3 version 3.7.9.
Contributed by Grigory Filatov <gfilatov@...>
* Updated: WinReport library (see source in folder \Source\WinReport).
Contributed by Pierpaolo Martinello
(see demo in folder \samples\Advanced\REPORT_INTERPRETER)
* Updated: PropGrid library v.2.0 (see source in folder \source\PropGrid):
- New: Added optional buttons OK, APPLY, CANCEL and HELP:
Syntax:
OKBTN [ USEROKPROC ] [ APPLYBTN ]
CANCELBTN [ USERCANCELPROC ]
HELPBTN
- Changed: Changing the structure of control, elements of
PropertyGrid are now common parent.
- Changed: Some internal functions received a new names, and
improvements were introduced.
Contributed by Janusz Pora <januszpora@...>
(see demo3.prg in folder \samples\Advanced\PropGrid)
* Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG:
- Fixed: wrong cursor position at Win7 (in the example Tsbrowse 9.0->
Excel Test).
Contributed by Janusz Pora <januszpora@...>
* Updated: Harbour Compiler 3.1.0dev (SVN 2011-11-15 23:28).
Contributed by Grigory Filatov <gfilatov@...>
(look at ReadMe.txt in folder \harbour)
* New: 'Cuckoo Clock' sample.
Based upon a contribution by Bicahi Esgici <esgici@...>.
Adapted for Minigui Extended by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\CuckooClock)
* Updated: 'AVI Animation' sample:
- ANIMATERES control was defined as user component;
- used avi resource is stored as appls resource.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\AVI_Animation)
* Updated: 'Get Fonts' sample: minor change.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\GetFonts)
* Updated: 'RicheditEx' samples: fixed text search at WinXP and later.
Based upon a contribution of Fernando Yurisich
<fernando.yurisich@...>
(see in folders \samples\Advanced\RicheditEx and
\samples\Advanced\RicheditEx_2)
* Updated: 'SysInfoTray' sample: revised getting CPU usage function.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\SysInfoTray)
* Updated: 'TsBrowse Incremental search' sample.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\Tsb_filter)
* Updated: 'Free Memory' sample: revised getting CPU usage function.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Applications\FREE_MEMORY)
* Updated: 'Stock' (Builder of the Function List) sample:
- export of shared (or uncalled only) procedures/functions to HTML;
- more careful analysis of strings (skip comments: "//", "*", "/*
*/").
Contributed by Alexey Gustow
(see in folder \Utils\FuncList)

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

--
Best Regards,
Grigory Filatov
[MiniGUI Team]

Monday, November 7, 2011

Harbour MiniGUI Extended Edition 2.0.3 setup Released on 31st October 2011

Hi All,

The Harbour MiniGUI Extended Edition 2.0.3 setup is published at the following
URL:

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

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

http://hmgextended.com/files/CONTRIB/hmg203-mingw.zip

There is the following changelog for this build:

2011/10/31: HMG Extended Edition 2.0.3 Published.
* Enhanced: The Button control with Icon picture supports a theme style at the
changing button's icon picture in WinXP.
Requested by Simon Norbert <simon.n@...>.
Contributed by Grigory Filatov <gfilatov@...>
(see demo in folder\samples\basic\button_2)
* Enhanced: COMPRESS and UNCOMPRESS commands supports an optional
RESULT [TO] clause.
Syntax:
- COMPRESS "MyBase.dbf" TO "Backup.zip" ;
BLOCK {|cFile, nPos| ProgressUpdate(cFile, nPos)} RESULT lSuccess
- UNCOMPRESS "Backup.zip" EXTRACTPATH ".\" RESULT TO lSuccess
Contributed by Grigory Filatov <gfilatov@...>
(see demo2.prg in folder \samples\Basic\Zip)
* Enhanced: PRINT GRAPH (bar type) supports a multiple colors when the graph
have
one serie only and you did specify a color array for each value.
Contributed by Grigory Filatov <gfilatov@...>
* Changed: The others MCI Player internal functions are defined as
pseudo-functions.
Contributed by Grigory Filatov <gfilatov@...>
* Updated: Unneeded hbprinter code was removed at starting of DO REPORT
command.
Contributed by Grigory Filatov <gfilatov@...>
(see demo in folder \samples\Basic\DO_REPORT)
* Updated: Modified an image aspect ratio in the PRINT GRAPH command.
Contributed by Grigory Filatov <gfilatov@...>
* Updated: MiniPrint library (see source in folder \Source\MiniPrint):
- Changed: used themed ButtonEx control for toolbar buttons.
Contributed by Grigory Filatov <gfilatov@...>
* Updated: WinReport library (see source in folder \Source\WinReport).
Contributed by Pierpaolo Martinello
(see demo in folder \samples\Advanced\REPORT_INTERPRETER and
help file WinReport.chm in folder \Doc)
* Updated: Socket library source code by Matteo Baccan <baccan@...>:
- Added SetSendTimeout( nMilliSec ) method in tsmtp.prg.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \Source\Socket)
* Updated: HbSQLite3 library source code (see in folder \Source\HbSQLite3):
- update for using SQLITE3 version 3.7.8
Contributed by Grigory Filatov <gfilatov@...>
* Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG:
- Fixed: wrong behaviour at lNoHScroll := .T. and double press
Ctrl+End.
Problem was reported by Krzysztof Stankiewicz <ks@...>.
Contributed by Grigory Filatov <gfilatov@...>
* Updated: Harbour Compiler 3.1.0dev (SVN 2011-10-25 13:06):
* Updated: most important differences between Harbour and xHarbour
(see xhb-diff.txt in folder \harbour\doc);
* Updated: MySql library source code (see in folder \Source\HbMySql);
* Updated: HbZipArc library source code (see in folder
\Source\HbZipArc).
Contributed by Grigory Filatov <gfilatov@...>
(look at ReadMe.txt in folder \harbour)
* Updated: HMGS-IDE v.1.1.0.1 Project Manager and Two-Way Visual Form
Designer:
- Fixed : Problem at compiling of console application.
Reported by Franz <franz@...>
* New: 'HMG Achoice' sample.
Based upon a contribution of Dhanny del Pilar
<dhaine_adp@...>
(see in folder \samples\Advanced\ACHOICE_2)
* New: 'Dbf to/from Sqlite converter' sample.
Based upon a contribution of S.Rathinagiri <srgiri@...>.
Adapted for Minigui Extended by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\dbf2sqlite)
* New: 'Get Windows Version string' sample with 64-bit OS detection.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\WinVersion_2)
* Updated: 'My Dbf Browse' sample: minor change.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Basic\BROWSE_8)
* Updated: 'Edit Extended' sample: revised advanced saving function.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Basic\EDIT_EXTENDED)
* Updated: 'Barcode Reader' with serial input sample:
- added C-casting to pacify warnings.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\BarTools)
* Updated: 'MiniSql Basic' sample for compatibility with MySql library
changes.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\MiniSql)
* Updated: 'Report Interpreter' sample:
- New: Added 'Barcode labels' sample.
Contributed by Pierpaolo Martinello
(see in folder \samples\Advanced\REPORT_INTERPRETER)
* Updated: 'DBFview v.0.78' sample: revised Windows 7 UI look.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Applications\DBFview)

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

--
Best Regards,
Grigory Filatov
[MiniGUI Team]

Thursday, October 27, 2011

SQLite3 Façades for Harbour by Daniel Gonzalez

Hello everybody,

I'm not sure if one of you guys have heard about SQLite3 Façades for Harbour. I've wrote those façades in 2008 and then released it under Creative Commons Attribution 3.0 Unported License.

SQLite3 Façades for Harbour provides an easy and clean way to work with SQLite3 databases using an elegant and simple object oriented approach. If you get interested you can read the tests to get an idea of how it works.

Well, I'm no longer working with Harbour, but these façades was very useful to me, and it's available at https://bitbucket.org/danielgoncalves/sqlite3facade.

Hope it's still useful.
bitbucket.org

Originally posted on Harbour Project Facebook Group

Wednesday, October 26, 2011

Harbour MiniGUI Extended Edition 2.0.2 Released on 12th October 2011

Hi All,

The Harbour MiniGUI Extended Edition 2.0.2 setup is published at the following
URL:

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

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

http://hmgextended.com/files/CONTRIB/hmg202-mingw.zip

There is the following changelog for this build:

2011/10/12: HMG Extended Edition 2.0.2 Published.
* Fixed: Restored normal WinAPI behaviour of ReadOnly Spinner control.
It was wrongly mixed with Disabled state (introduced in the build 31).
Requested by Adalberto from brazilian forum MiniGUI.
Contributed by Grigory Filatov <gfilatov@...>
(see demo in folder \samples\Basic\SPINNER)
* New: Added read/write property 'Tabstop' for standard controls.
You can set/get this property at runtime:
- function syntax:
SetProperty ( Form, Control, 'Tabstop', lLogical )
GetProperty ( Form, Control, 'Tabstop' )
- pseudo-OOP syntax:
Form.Control.Tabstop := lLogical
Form.Control.Tabstop --> logical value
Contributed by Grigory Filatov <gfilatov@...>
* Enhanced: The Button control supports now an optional HOTKEY clause.
Based upon a code for a hotkey detection borrowed from OOHG.
Requested by Simon Norbert <simon.n@...>.
Contributed by Grigory Filatov <gfilatov@...>
(see menu File->'More Tests' in folder \samples\basic\MAINDEMO (SYNTAX I))
* Enhanced: The Button control with Icon picture supports now a theme style at
WinXP.
The old behaviour is available also via using NOXPSTYLE clause.
Requested by Simon Norbert <simon.n@...>.
Contributed by Grigory Filatov <gfilatov@...>
(see demo in folder\samples\basic\button_2)
* Enhanced: Added moving between data in a CellNavigation Grid control by
column.
It means that instead of moving cursor to the right when you accepted cell
editing, the cursor should be moved downwards.
- New: SET [GRID] CELLNAVIGATIONMODE VERTICAL | HORIZONTAL command.
This mode automatically puts you in edit mode, besides to driving you down
or left when accepting changes with or keys.
Based upon a contribution of Roberto Lopez <mail.box.hmg@...>
(see demo2.prg in folder \samples\Basic\Grid_Test)
* Changed: The some MCI Player and AnimateBox internal functions are defined as
pseudo-functions now.
Contributed by Grigory Filatov <gfilatov@...>
* Changed: Harbour GT functions are used for set/get Clipboard text now.
Contributed by Grigory Filatov <gfilatov@...>
* Updated: Harbour Compiler 3.1.0dev (SVN 2011-10-11 01:56).
Contributed by Grigory Filatov <gfilatov@...>
(look at ReadMe.txt in folder \harbour)
* Updated: HMGS-IDE v.1.1.0. Project Manager and Two-Way Visual Form Designer.
Contributed by Sylvain Larche <slarche@...>
(look for what's new at changelog.txt in folder \Ide)
* New: 'HMG IDE' sample by Roberto Lopez <mail.box.hmg@...>.
Borrowed from HMG 4 project. It is a Ide template only.
Adapted for Minigui Extended by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\hmgide)
* New: 'Mini Agenda' sample.
Based upon a contribution by Bicahi Esgici <esgici@...>.
Adapted for Minigui Extended by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\MiniAgenda)
* New: 'Focus It' sample: enable X-Mouse style window activation.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Applications\FOCUS_IT)
* Updated: 'Ftp Client' sample based upon a TIP library.
Problem with uploading of the binary files was reported by
Eladio Bravo <eladibravo@...>.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\FtpClient)
* Updated: 'Tone function via sound card' sample:
- Revised the musical sequence.
Contributed by Alexey Gustow
(see in folder \samples\Advanced\Tone)
* Updated: 'Calculator' sample: correction of the 'percent' button action.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Basic\Calc)

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

--
Best Regards,
Grigory Filatov
[MiniGUI Team]

Wednesday, October 19, 2011

Harbour/xharbour Diff :13/57 - USING [] OPERATOR FOR STRING ITEMS - Przemyslaw Czerpak

###    USING [] OPERATOR FOR STRING ITEMS    ###
================================================
xHarbour supports using [] operator to access single characters in
string items. Harbour doesn't by default but it has strong enough
OOP API to allow adding such extension without touching core code
even by user at .prg level. It was implemented in Harbour in XHB.LIB.
This code can be compiled and executed by both compilers:
      #ifndef __XHARBOUR__
         #include "xhb.ch" // add xHarbour emulation to Harbour
      #endif
      proc main()
         local s := "ABCDEFG"
         ? s, "=>", s[2], s[4], s[6]
         s[2] := lower( s[2] )
         s[4] := lower( s[4] )
         s[6] := lower( s[6] )
         ?? " =>", s
      return

Warning!. There is one difference in above implementation introduced
intentionally to Harbour. xHarbour never generates errors for wrong
indexes in [] operator used for string items but simply returns "",
f.e. add to above code:
      ? ">" + s[0] + "<", ">" + s[1000] + "<"
If [] operator is used for other type of items RTE is generated.
Harbour will generate RTE in all cases. If someone needs strict XHB
compatibility here then he should adopt code overloading [] operator
for strings in XHB.LIB for his own preferences removing the RTE.

Thursday, September 22, 2011

Harbour MiniGUI Extended Edition 2.0.1 Released on 21st Sept 2011

Hi All,

The Harbour MiniGUI Extended Edition 2.0.1 setup is published at the following
URL:

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

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

http://hmgextended.com/files/CONTRIB/hmg201-mingw.zip

There is the following changelog for this build:

2011/09/21: HMG Extended Edition 2.0.1 Published.
* Changed: From this release, build number is at the end of version number.
This way '2.0.1' is used instead '2.0 build 1'.
* Enhanced: The PROGRESSBAR control supports an optional [ STYLE ] MARQUEE
clause
(continuous loop) with optional parameter VELOCITY nValue (default is
40):
- New: Added write only 'Velocity' property.
You can set this property at runtime:
- function syntax:
SetProperty ( Form, ProgressBar, 'Velocity', nValue )
- pseudo-OOP syntax:
Form.ProgressBar.Velocity := nValue
You can use Form.ProgressBar.Velocity := 0 for stopping of the loop.
Contributed by Grigory Filatov <gfilatov@...>
(see demo4.prg in folder \samples\Basic\PROGRESSBAR)
* Fixed: When you have a popup with menuitems is showing a message from
another item
that's not the popup. Reported by Marcelo A. L. Carli
<malcarli@...>.
The DEFAULT statusbar message will be used for filling of the popup's
message.
Contributed by Grigory Filatov <gfilatov@...>
* Fixed: DO REPORT command don't restore Portrait mode with using Landscape
clause.
Problem was reported by Sudip Bhattacharyya <sudipb001@...>.
Contributed by Grigory Filatov <gfilatov@...>
* Enhanced: DO REPORT command supports now an optional NODATETIMESTAMP clause.
Requested by Sudip Bhattacharyya <sudipb001@...>.
Contributed by Grigory Filatov <gfilatov@...>
(see demo in folder \samples\Basic\DO_REPORT)
* Changed: Added BCC optimization switches to main batch file and MPM utility
(the ones used for the hbmk2 switch -optim).
Contributed by Grigory Filatov <gfilatov@...>
(see Compile.bat in folder \Batch and mpm.prg in folder \Utils\MPM)
* Updated: HBPrinter library v.2.25 (see source in folder \source\HbPrinter):
- Changed: preview images are stored on temporal files similar to
miniprint.
Based upon a code borrowed from OOHG.
Contributed by Grigory Filatov <gfilatov@...>
* Updated: Socket library source code by Matteo Baccan <baccan@...>:
- Added: parameter with length of custom string buffer (default is 1)
in method ReceiveChar( nBufLen ) (tsocket.prg)
Based upon a contribution of Artyom Verchenko
<artyomskynet@...>
- Updated: Revised class code for compatibility with Harbour switch
-w3.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \Source\Socket)
* Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG:
- New: Added method UserPopup() allows to add an user-defined menus
to
the selected columns. It is activated by right mouse button within
the header.
Contributed by Janusz Pora <januszpora@...>
(see demo at Menu TSBrowse 9.0->'Headers User Menu'
in folder \samples\Advanced\TSBrowse)
- Fixed: Added conversion for datetime value in the function
cValToChar().
Problem was reported by Marcelo Torres <lichitorres@...>.
Contributed by Grigory Filatov <gfilatov@...>
(see sample tsbrowse 9.0->Test Ado->All Fields, the field HIREDATE
in folder \samples\Advanced\TsBrowse)
* Updated: Harbour Compiler 3.1.0dev (SVN 2011-09-16 11:56):
* Updated: HbSqlDD library source code (see in folder
\Source\HbSqlDD);
* Updated: PostGreSQL library source code (see in folder
\Source\HbPgSql).
Contributed by Grigory Filatov <gfilatov@...>
(look at ReadMe.txt in folder \harbour)
* Updated: HMGS-IDE v.1.0.8. Project Manager and Two-Way Visual Form Designer.
Contributed by Walter Formigoni <walter.formigoni@...>
(look for what's new at changelog.txt in folder \Ide)
* New: 'Table of Colors' sample.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Basic\ColorsTable)
* New: 'Download Manager with MultiThreading' sample (based on socket
library).
Based upon a contribution of Artyom Verchenko
<artyomskynet@...>
(see in folder \samples\Advanced\Downloader)
* New: 'Hack Tray' sample (based upon a nice work of Nibu babu thomas).
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Advanced\HackTray)
* Updated: 'Data Base Assistant' utility:
- Added: a draft print function at the showing of the database list.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \Utils\DBA)
* Updated: 'Simple Editor' sample.
Contributed by Grigory Filatov <gfilatov@...>
(see in folder \samples\Basic\EDITOR)

This build was tested on the following platforms:
- Win98 SE (passed);
- WinXP SP1 (passed);
- Win7 SP1 (passed).

This build was not tested on the following platforms:
- Win95;
- Win2000;
- WinVista.

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

Your feedback is welcome!

--
Best Regards,
Grigory Filatov
[MiniGUI Team]

Thursday, September 15, 2011

Harbour MiniGUI 1.9 Extended Edition (Build 99) Released on 17th August 2011

Hi All,

The Harbour MiniGUI 1.9 Extended Edition (Build 99) setup is published at the following URL:
 http://hmgextended.com/files/CONTRIB/hmg-1.9-99-setup.zip
and a lite MinGW-based build 99 archive is placed at the following URL:
 http://hmgextended.com/files/CONTRIB/hmg99-mingw.zip
>
> There is the following changelog for this build:
>
> 2011/08/17: Build 99 (HMG 1.9 Extended Edition) Published.
> * Enhanced: The ComboBox control supports now an optional UPPERCASE and LOWERCASE clauses.
> Suggested by Simon Norbert .
> Contributed by Grigory Filatov
> (see demos in folders \samples\Basic\COMBO_1 and \samples\Basic\COMBO_4)
> * Enhanced: The AnimateBox control supports now an optional NOBORDER clause.
> Suggested by Simon Norbert .
> Contributed by Grigory Filatov
> (see demos in folder \samples\Basic\ANIMATEDEMO)
> * Changed: The main batch file adds the user's libraries before Harbour core and contrib.
> Problem was reported by Mahmoud Fayed .
> Contributed by Grigory Filatov
> (see Compile.bat in folder \Batch)
> * Updated: C-code for compatibility with a last Harbour changes regarding to:
> 2011-07-17 16:21 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
> * deleted things marked with HB_LEGACY_LEVEL3, finishing cleanup
> job started many years ago.
> ; this also means that windows.h and os2.h will no longer be
> included by Harbour headers, HB_OS_WIN_USED is thus ineffective,
> so if someone needs these headers to access system APIs, they
> should be manually included in each source file.
> Contributed by Grigory Filatov
> * Updated: MPM utility:
> - Changed: maximum length of environment strings set at 254 characters.
> Problem was reported by Bill Broyles
> Contributed by Kevin Carmody <i@kevincarmody.com>
> (see in folder \Utils\MPM)
> * Updated: Harbour Compiler 3.1.0dev (SVN 2011-08-13 17:25).
> Contributed by Grigory Filatov
> (look at ReadMe.txt in folder \harbour)
> * Updated: The all samples are revised for compatibility with a last Harbour changes:
> - Added IS*() -> HB_IS*() conversing
> Contributed by Grigory Filatov
> * New: 'Firebird database access through a ODBC driver' sample.
> Contributed by Hugo Rozas
> (see in folder \samples\Basic\Firebird)
> * Updated: 'CallDll32 function' samples:
> - Added calling function UnloadAllDll() at 'On Release' event.
> Contributed by Grigory Filatov
> (see demos in folder \samples\Basic\CallDll)
> * Updated: 'Volume Info' sample.
> Contributed by Grigory Filatov
> (see demo2.prg in folder \samples\Advanced\VOLUME_INFO)
> * Updated: Added Bulgarian language translation to the following multilingual samples:
> - Biorhythm;
> - DBFview;
> - Language Indicator;
> - Multilingual;
> - Shutdown.
> Contributed by Danail Dikov .
>
> This release of MiniGUI is considered stable and ready for production use.
>
> --
> Best Regards,
> Grigory Filatov
> [MiniGUI Team]

Harbour/xharbour Diff :12/57 - MULTIVALUE MACROS by Przemyslaw Czerpak

In the early Harbour days was added basic support for multivalue macros
which can be evaluated to list of values, f.e.:
      ? &("1,2,3")
should show:
      1,  2,  3
The implementation of this extension was not accepted by many of Harbour
developers and it was one of the main reasons of the xHarbour fork.
In Harbour it was later fully removed and implemented from scratch using
different internal algorithms and structures. Now Harbour supports multivalue
macros in code like:
      proc main()
         local s1 := "'a', 'b', 'c'", s2 := "1,3", a
         ? &s1
         a := { { "|", &s1, 'x', &s2, 'y' }, 'x', &s2 }
         ? "a[1] items:"
         aeval( a[1], { |x,i| qout( i, x ) } )
         ? "a["+s2+"] =>", a[ &s2 ]
      return

xHarbour which inherited the original implementation after over 6 years
still cannot execute correctly above code.


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:

http://hmgextended.com/files/CONTRIB/hmg-1.9-98-setup.zip

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

http://hmgextended.com/files/CONTRIB/hmg98-mingw.zip

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 <gfilatov@inbox.ru>
(see demo in folder \samples\Basic\Label)
* New: Added 'ON MOUSEHOVER' and 'ON MOUSELEAVE' events (optional) for IMAGE control.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(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 <gfilatov@inbox.ru>
(see demo in folder \samples\Advanced\CONTROL_
PANEL)
* 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 <i@kevincarmody.com>
* 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 <i@kevincarmody.com>
(see in folder \Utils\MPM)
* Updated: HbSQLite3 library source code (see in folder \Source\HbSQLite3):
- update for using SQLITE3 version 3.7.7.1
Contributed by Grigory Filatov <gfilatov@inbox.ru>
* Updated: Harbour Compiler 3.0.0 final (SVN 2011-07-17 16:34).
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(look at ReadMe.txt in folder \harbour)
* New: 'HMG Cursor' sample. Borrowed from HMG 4 project.
Adapted by Grigory Filatov <gfilatov@inbox.ru>
(see in folder \samples\Basic\CURSOR)
* New: 'Image-based ToolBar' sample. Requested by Daniel Maximiliano.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see demo3.prg in folder \samples\Basic\TOOLBAR)
* New: 'Control Panel' sample.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(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 <gfilatov@inbox.ru>
(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 welawins@gmail.com via googlegroups.com

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 harbour@engwall.com via googlegroups.com 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.

Regards,
Klas


Feedback from Sam Sommer welawins@gmail.com via googlegroups.com


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

http://www.hmgforum.com/site (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)



rathinagiri

More at http://www.hmgforum.com/viewtopic.php?f=2&t=2007

- 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" <harbour.01@syenar.hu> 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 googlegroups.com 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):
 http://sourceforge.net/projects/harbour-project/files/binaries-windows/3.0.0/

Make sure to 'like' Harbour Project on the main page:
  http://sourceforge.net/projects/harbour-project/

Viktor

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 sf.net file area.

Upgrade is recommended for all users.

Get 3.0.0 sources from here:
  svn export https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/tags/harbour-3.0.0
  (note to developers: never commit into this branch)

Prepackaged sources here for both *nixes (.gz, .bz2, .xz)
and non-*nixes (.zip):
  http://sourceforge.net/projects/harbour-project/files/source/3.0.0/

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 https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/branches/harbour-3.0

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

Viktor

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

BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE COMPRESS
BLINKER EXECUTABLE CLIPPER F99
BLINKER PROCEDURE DEPTH 70
BLINKER OVERLAY OPSIZE 30
STACK 7168

FILE FC_MAIN
OUTPUT FASCALL

BEGINAREA
    FILE WRPT_GLL
    FILE WRPT_ARL
    FILE WRPT_ARD
    FILE WRPT_ARS
    FILE WRPT_APL
    FILE WRPT_APD
    FILE WRPT_APS
    FILE \KSLIB\CLIPLIB\UTILITY

    FILE \CLIPLIB\COMIX\CLIPMORE\52\CM52.OBJ
    ALLOCATE \CLIPLIB\COMIX\CLIPMORE\52\CM52
    FILE \CLIPLIB\COMIX\COMIX\52\CMX52.OBJ
    ALLOCATE \CLIPLIB\COMIX\COMIX\52\CMX52
ENDAREA

LIBRARY CLIPPER
LIBRARY EXTEND
LIBRARY DBFCDX
NOBELL


1.2 Convert the fascall.lnk to fascall.hbp

-ofascall4w7.exe
-w0
-es2
-rebuild

fc_main
WRPT_GLL
WRPT_ARL
WRPT_ARD
WRPT_ARS
WRPT_APL
WRPT_APD
WRPT_APS
UTILITY

Step 2


hbmk2 FASCALL.HBP

Result

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 hbide.vouch.info.

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

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

Regards
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)?.

Hugo

Answer


Yes , using Harbour you can do that

example :

#include "hbclass.ch"

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

PROCEDURE DllMain()

  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. )

RETURN

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

   IF hAction[ "FILENAME" ] == NIL
      RETURN "(:FILENAME IS NOT SET)"
   ENDIF

 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.

libs=hbwin.hbc

gt=gtgui

cflags={watcom}-6r

sources={mingw}hbolesrv-mingw.def
sources={watcom}hbolesrv-watcom.def
sources={!mingw&!watcom}hbolesrv.def

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

EXPORTS
DllGetClassObject       PRIVATE
DllCanUnloadNow         PRIVATE
DllRegisterServer       PRIVATE
DllUnregisterServer     PRIVATE
DllMain

When you download harbour you will find samples in this location

C:\hb21\contrib\hbwin\tests

Greetings,
Mahmoud Fayed
http://pwct.org

Known Bugs in Harbour 3.0

"Viktor Szakáts" <harbour.01@syenar.hu> 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:
http://sourceforge.net/tracker/?limit=25&func=&group_id=681&atid=100681&status=1&submit=Filter

Viktor

Sunday, June 19, 2011

Harbour stable release (2.2.0)

"Viktor Szakáts" <harbour.01@syenar.hu> Jun 16 12:41PM +0200 ^

Hi All,

I plan to make stable release till the end of July.

I'd like to ask everyone to start doing tests using
current SVN and report build and user-level bugs
on all platforms. Use default build settings for these
tests, and try using latest versions of 3rd party
libs and tools. Also test bcc55.

Feature freeze: I'd also seriously ask everyone to
_not commit any new features_ till the release is
done, but instead focus on reviewing and fixing
anything available in current SVN. Hold off any
fixes which may seem prone to regression.

The version of the release will be 2.2.0. (2.1.x is
too worn by now).

The Windows unified binary will feature libs for
mingw, mingw64, msvc, msvc64, mscvarm and bcc55.
(watcom dos/os2/linux and pocc will be left out
compared to prev build)

When we're clean, I'll do the source release,
tagging and windows unified release, and I ask
contributors to create OS/2, Linux, OS X, *BSD
builds as before.

Focus on these when testing. Thank you.

Viktor

Sunday, June 5, 2011

Harbour/xharbour Diff : 11/57 -MACRO MESSAGES by Przemyslaw Czerpak

###    MACRO MESSAGES    ###
============================
Both compilers Harbour and xHarbour supports macros as messages.
Clipper does not. This example shows such macro messages usage:

      proc main()
         memvar var
         local o := errorNew(), msg := "cargo"
         private var := "CAR"

         o:&msg := ""
         o:&( upper( msg ) ) += ""
         ? o:&var.go

Users who want to test it in xHarbour should change:
      o:&( upper( msg ) ) += ""
to:
      o:&( upper( msg ) ) := o:&( upper( msg ) ) + ""
because using macro messages with = operators or pre/post
incrementation/decrementation causes that xHarbour compiler GPFs during
compilation.

Sunday, May 22, 2011

Harbour MiniGUI 1.9 Extended Edition (Build 96) Released on 18th May 2011

Hi All,

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

http://hmgextended.com/files/CONTRIB/hmg-1.9-96-setup.zip

There is the following changelog for this build:

2011/05/18: Build 96 (HMG 1.9 Extended Edition) Published.
* Fixed: Problem with appearance the RichEdit control in Win2000
(introduced in the build 94).
Bug was reported by Paolo Russignan <paolorus@yahoo.it>.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
* Fixed: Problem with negative decimal numbers and 'E' picture in GetBox control.
Bug was reported by Ari Lehtinen <ari.lehtinen@pp8.inet.fi>.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
* New: SET GLOBAL HOTKEYS ON | OFF command. When set to ON, the defined hotkeys
are available from everywhere (default is OFF).
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see demo in folder \samples\Advanced\CDejector)
* New: PostGreSQL wrapper support for MiniGUI (see in folder \Source\HbPgSql).
Contributed by Mitja Podgornik <yamamoto@rocketmail.com>
(see console demo in folder \samples\Basic\PostgreSQL)
* Changed: Minor simplification of Browse functions code.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
* Changed: Added parameters error checking in the Grid columns autofitting.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see demo.prg in folder \samples\Basic\Grid)
* Updated: Batch file hbmk2.bat for compiling with HBMK2 utility:
- Added: switch /n for 'no run after build' mode.
Suggested by Paolo Russignan <paolorus@yahoo.it>.
- Added: switch /nh for 'no head incremental' mode.
Suggested by Mitja Podgornik <yamamoto@rocketmail.com>.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see hbmk2.bat in folder \Batch)
* Updated: HbSQLite3 library source code (see in folder \Source\HbSQLite3):
- update for using SQLITE3 version 3.7.6
Contributed by Grigory Filatov <gfilatov@inbox.ru>
* Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG:
- Modified: Added minimal columns width at resizing in DrawHeaders method.
The variable ::nMinWidthCols may be rewritten at runtime (default is 4).
Requested by Simon Norbert <simon.n@t-online.hu>.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
* Updated: Harbour Compiler 2.1.0rc2 (SVN 2011-05-15 17:19).
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(look at ReadMe.txt in folder \harbour)
* Updated: 'CD Ejector' sample:
- Enhanced: hotkeys Ctrl+Alt+[A|E|L] are available from everywhere.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see in folder \samples\Advanced\CDejector)
* Updated: 'Start Button Image Control' sample:
- Enhanced: hotkey Ctrl+F6 is available from everywhere.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see in folder \samples\Advanced\StartButton)
* Updated: 'Sticky Notes' sample.
Bug was reported by Jaroslav Janik <jaroslav.janik@siemens.com>.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see in folder \samples\Applications\
StickyNotes)

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

--
Best Regards,
Grigory Filatov
[MiniGUI Team]

Wednesday, May 11, 2011

Harbour/xharbour Diff :10/57 - HB_ARRAYTOPARAMS() FUNCTION by Przemyslaw Czerpak

###    HB_ARRAYTOPARAMS() FUNCTION    ###
=========================================
Harbour has special function which allows to convert array into
list of items which can be used as function parameters, array
values or array indexes in the same way as '...' operator:
   hb_arrayToParams(  ) -> [ 1 ] [, [ N ] ]
i.e.:
      proc main( ... )
         local aParams := hb_aParams(), n
         /* remove parameters starting with "--" */
         n := 1
         while n < len( aParams )
            if left( aParams[ n ], 2 ) == "--"
               hb_adel( aParams, n, .t. )
            else
               ++n
            endif
         enddo
         ? "Public parameters:", hb_arrayToParams( aParams )
      return

Note for Clipper users: 'hb_adel( aParams, n, .t. )' in above example
works like 'adel( aParams, n ); asize( aParams, len( aParams ) - 1 )'.

This functionality is unique to Harbour and xHarbour does not support
hb_arrayToParams() or similar function.

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.

-Mel

A.  Try:

svn co https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour c:\svn

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

Qatan

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: www.tribaltradingcompany.com.br/qharbour
  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.
  Regards,

Qatan

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.