About The Guide

Programming in Harbour and HMG - A Beginners Guide is aimed at readers interested in learning how to write computer programs. It assumes no previous knowledge or experience and focuses on the use of a computer language called Harbour and an "add-on" to that language, called the Harbour Mini-GUI – or HMG – which enables users to develop programs that take advantage of the graphical user interface capabilities of Microsoft Windows computers.

Harbour and HMG have both been developed by a global team of expert computer programmers and they are completely free for anyone who wishes to take advantage of this extremely powerful language.

The guide takes a step by step approach to demonstrate and explain the key building blocks used in developing a computer program and many of these are common to all programming languages. At the heart of this guide is a "learning project" which readers start developing from scratch. Each chapter introduces new capabilities to the program and explains the computer code used to create that capability. In addition to the "learning project" several "Fundamentals" sections focus on a more in-depth and detailed explanation of important concepts and language capabilities which act as a reference for readers as they gain more experience. Finally, a "Blog" contains articles that discuss useful concepts and capabilities which have been developed for my own projects or have been suggested by readers.

"The guide" was started in 2014 as a small informal project and was moved to a dedicated website in 2015 following positive comments from readers. As of October 2016, it is still in development with new content being published once or twice a month.

About ePortfolio

The "learning project" central to this guide is a computer database program called ePortfolio. Once completed, this program can be used to record, track and manage investments made in the shares of publically listed companies found on many global stock markets.

I chose this as the subject to use in this guide because I manage my own personal investment portfolios and, therefore, have a strong interest in understanding the performance of my investments! My strategy is to ensure I achieve the best possible return over the medium to long term and I previously relied on various spreadsheets to do this. However, as my investment strategy has matured, I found that this became more time consuming and restrictive so I developed my own database program to overcome these barriers.

Within this guide, readers will learn how to develop a simplified version of the program which enables the management of a single investment portfolio focused on shares found on the London Stock Exchange. I have chosen to do this in order to keep the guide to a manageable size but I have also focused time and effort on using as many of the capabilities found in Harbour and HMG as possible. More experienced programmers will recognise that I have taken a somewhat inconsistent approach to creating this program but this is a deliberate choice to give readers the best possible opportunity to learn as much as possible about the language.

Whilst, I accept that not all readers have an interest in stock market investment I hope that this "learning project" will still serve its key purpose which is to act as a way to learn how to write computer programs so that they are able to develop their own computer programming projects.


This website and its content is copyright of Harbour-Guide.com - © 2016. All rights reserved.

Any redistribution or reproduction of part or all of the contents in any form is prohibited other than the following:

  1. You may print or download to a local hard disk extracts for your personal and non-commercial use only
  2. You may copy the content to individual third parties for their personal use, but only if you acknowledge the website as the source of the material
  3. You may not, except with our express written permission, distribute or commercially exploit the content, nor may you transmit it or store it in any other website or other form of electronic retrieval system