How To Help Clipper & Foxpro Users Catch Harbour-HMG ASAP!

Topic Specific Tutorials and Tips.

Moderator: Rathinagiri

Post Reply
User avatar
Agil Abdullah
Posts: 204
Joined: Mon Aug 25, 2014 11:57 am
Location: Jakarta, Indonesia
Contact:

How To Help Clipper & Foxpro Users Catch Harbour-HMG ASAP!

Post by Agil Abdullah » Fri Sep 05, 2014 11:50 am

Hi All,


I believe that all CLipper & Foxpro programmers are facing common problems as how to, as quickly as possible, migrate from under-DOS apps to under-Windos apps. The first problem arising ( as I feel today ) is how to handle with screen area (menus, buttons, boxes, etc) in they way the Windows wants us to write programming codes.

As we know that under MS/IBM DOS, we write codes straight down to destination of row & col, bring togather with content, atribute, etc- to appear directly on screen, WITHOUT tyring bureaucracy!... :lol: :lol: ... After that we can #savescreen and #restorescreen.

Now, Using GUI (Harbour MiniGUI / HMG) we have to adapt to very different way... First we must handle screen as "windows" entity; first we must declare & define them before we can activate them to appear on screen. The advantage of this new-tech is however: the screen looks very excellent, impressing and mobile.

Our questions (as HMG newbees) and our needs are as follow :

1) How to get a lot of of source codes containing of samples to handle screen-menus ; from basic up to complex/advanced screen-menus?

To answer this questions, pls help us by showing links which permit us to download. And by sharing your source-code available for public.

Screenshoot attached herein, is a sample screen handle we need to implement on our application, ASAP. Being programmers for long time, we need any advanced skill in order to satisfy our users/clients currently still using our DOS-apps-versions.

2) How to avoid one app/EXE is double-run by users in the same computer? This problem never arise under DOS who own a single window. I noticed when execercising HMG-ID (executing IDE.EXE) to build project, the RUN (F5) function fails to detect the problem. that's way HMG-IDE made runtime error as if the mistake came from source program.

3) Why stable version release from official Harbour-Project differ from this forum? The project says the latest stable version is 3.0.0. while this forum says HMG 3.3.1. Any clarification in this matter is urgently needed to avoid confusion.

4) Pls help us describe what the differences between this 3 services you've been provided: Harbour Compiler, Harbour Mini GIU, Harbour-IDE. We need to know exactly when and why use them?
Many thanks for your help. Any contribution in this matter is highly appreciated.

Salam Hangat dari Jakarta. :) :)
Attachments
hmdide01.jpg
hmdide01.jpg (376.89 KiB) Viewed 6779 times
Agil Abdullah Albatati (just call me Agil)
Programmer Never Surrender

User avatar
dragancesu
Posts: 560
Joined: Mon Jun 24, 2013 11:53 am
DBs Used: DBF, MySQL, Oracle
Location: Subotica, Serbia
Has thanked: 14 times
Been thanked: 101 times

Post by dragancesu » Fri Sep 05, 2014 3:06 pm

1. \hmg<version>\samples\menu*

2. SET MULTIPLE OFF WARNING

3. This is more than harbour compiler and rapidly evolving, so a new version

4. harbur compiler is a compiler (with many new features, but the programs are in text mode)
mini-gui, HMG and the rest are accessories harbour, HMG adding windows functionality
harbur-ide is a development environment

This is short, and it could be a lot to write ...

I did not feel easy to take it to windows programming, everything is new and different, but it's worth, I'm pleased and honored authors of each HMG

Each developer has their own style and does not like advice, go to the HMG might not be easy, but it's worth the effort

HMG-IDE I tried and quickly abandoned it, I prefer to have my code than some of the complicated tools

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México
Has thanked: 1 time
Been thanked: 2 times

Post by Javier Tovar » Fri Sep 05, 2014 5:23 pm

1. Obtaining simple to complex code, it will ahaciendo as you progress, because as everyone has their way of doing things, it is sometimes difficult to understand programming.

2.- HMG have the opportunity to work directly with one or multiple window open at the same time, this is not against, but on the contrary, HMG is so versatile that there is no problem with it, and when working network, you just have to keep in mind when locking and unlocking a record or file.

3.- what I have understood is the basis HARDBOUR compiler HMG, HMG But a long way in its controls and how to work !!!, it is as if it were a library HMG HARDBOUR.

4.-The practice and error is what will help you know what is best, and no better, he's just in the way you settle your particular programming. For example, I use the IDE to make a screen without much effort and very nice, but otherwise I like programming with files myself typing the PRG screens not very sophisticated, but I make work easier. And now I combine these two environments !!!. It saves a lot of time !!! It is a matter of taste.

greetings Agil :)

User avatar
esgici
Posts: 4452
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Has thanked: 332 times
Been thanked: 101 times
Contact:

Post by esgici » Sat Sep 06, 2014 2:17 am

Agil Abdullah wrote:...

1) How to get a lot of of source codes containing of samples to handle screen-menus ; from basic up to complex/advanced screen-menus?
Look at first <hmg>\SAMPLES folder. Here there is tons of samples and no doubt, every HMG user learned HMG by this wonderful samples.

In addition, our forum too is a knowledge base. Use as soon as possible search and advanced search features of forum.
To answer this questions, pls help us by showing links which permit us to download. And by sharing your source-code available for public.
As a third party source (you know), my humble blog may help you. For HMG samples : Contibuted HMG samples and HMG Samples sections may be helpful.
Screenshoot attached herein, is a sample screen handle we need to implement on our application, ASAP. Being programmers for long time, we need any advanced skill in order to satisfy our users/clients currently still using our DOS-apps-versions.
HMG-IDE is documented in HMG IDE section of HMG Doc and here.
2) How to avoid one app/EXE is double-run by users in the same computer? This problem never arise under DOS who own a single window. I noticed when execercising HMG-ID (executing IDE.EXE) to build project, the RUN (F5) function fails to detect the problem. that's way HMG-IDE made runtime error as if the mistake came from source program.
Search "IsExeRunning" keyword in the forum. In addition, here a sample to check double-run condition (thanks to Dr. Soto for required functions ) :

Code: Select all

#include <hmg.ch>

PROCEDURE Main()

   DEFINE WINDOW frmIsAppRunTest ;
      ROW 0 ;
      COL 0 ;
      WIDTH 650 ;
      HEIGHT 450 ;
      TITLE "Testing 'IsAppRunning()' function" ;
      ON INIT DoTest() ;
      MAIN
      
      ON KEY ESCAPE ACTION ThisWindow.Release
   END WINDOW // frmIsAppRunTest

   frmIsAppRunTest.Center()

   frmIsAppRunTest.Activate()
   
RETURN // IsAppRunTest.Main()      

*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.

PROCEDURE DoTest()
   IF IsAppRunning()
      MsgSTop( "Application is running already !", "Error")
      QUIT
   ELSE
      MsgBox( "Application is running first." )
   ENDIF   
RETURN // DoTest()

*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.

PROCEDURE IsAppRunning()

   LOCAL aProcess := EnumProcessesID(),;      // --> return array { nProcessID1, nProcessID2, ... }      
         cCurrApp := HB_ProgName(),;   
         nMutEx := 0,;
         n1ProcID,;
         lRVal := .F.
         
   FOR EACH n1ProcID IN aProcess 
      IF cCurrApp == GetProcessFullName( n1ProcID ) 
         IF ++nMutEx > 1
            lRVal := .T.
            EXIT 
         ENDIF   
      ENDIF                                      
   NEXT n1ProcID
   
RETURN lRVal // IsAppRunning()

*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.

3) Why stable version release from official Harbour-Project differ from this forum? The project says the latest stable version is 3.0.0. while this forum says HMG 3.3.1. Any clarification in this matter is urgently needed to avoid confusion.
No need any confusion, see below.
4) Pls help us describe what the differences between this 3 services you've been provided: Harbour Compiler, Harbour Mini GIU, Harbour-IDE. We need to know exactly when and why use them?
Harbour : Is a multi-platform open source compiler for xBase programming language, as a continuation of Clipper Programming Language. You can use Harbour with or without HMG; as pure console mode or with another GUI facility.

HMG / MiniGUI : is also an open source GUI Library developed by Roberto Lopez, for Harbour Compiler, designed exclusively Windows platform only. You can't use HMG without Harbour.

HMG-IDE is a free utility developed by Roberto Lopez, builder of HMG. An Integrated Development Environment including a project builder and a
form designer; plus a DB Manager. You can use HMG library with or without HMG-IDE.

HMG and HMG-IDE now enhancing by our genius Dr. Soto 8-)

As you easily see and cited here with this three products we have a comprehensive and complete Windows programming toolkit or Clipper for Windows :arrow:

Please don't hesitate to ask any question you couldn't found answer in known sources; you know, "books doesn't include everything" ;)

Happy HMG'ing and hearty Salaams :D
Viva INTERNATIONAL HMG :D

User avatar
esgici
Posts: 4452
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Has thanked: 332 times
Been thanked: 101 times
Contact:

Post by esgici » Sat Sep 06, 2014 11:53 am

Esgici wrote:...here a sample to check double-run condition (thanks to Dr. Soto for required functions )
Sample program slightly modified :
IsAppRunOk.PNG
Application running for first time
IsAppRunOk.PNG (39.88 KiB) Viewed 6637 times
IsAppRunErr.PNG
Attempted to run application twice
IsAppRunErr.PNG (7.12 KiB) Viewed 6637 times
IsAppRunTest.zip
Source file ( .prg, hbp ) for IsAppRunTest
(825 Bytes) Downloaded 208 times
Happy HMG'ing :D
Viva INTERNATIONAL HMG :D

User avatar
Agil Abdullah
Posts: 204
Joined: Mon Aug 25, 2014 11:57 am
Location: Jakarta, Indonesia
Contact:

Post by Agil Abdullah » Mon Sep 08, 2014 5:21 am

Dragancesu said:
I did not feel easy to take it to windows programming, everything is new and different, but it's worth, I'm pleased and honored authors of each HMG

Each developer has their own style and does not like advice, go to the HMG might not be easy, but it's worth the effort

HMG-IDE I tried and quickly abandoned it, I prefer to have my code than some of the complicated tools
Your opinion and vision are interesting to me. Noted! Many Thanks.

After taking advice from commentators in this thread, and learning fast, Now, I am preparing to publish HMG Tutorial on my blog in Indonesian Language, for beginners.
Agil Abdullah Albatati (just call me Agil)
Programmer Never Surrender

User avatar
Agil Abdullah
Posts: 204
Joined: Mon Aug 25, 2014 11:57 am
Location: Jakarta, Indonesia
Contact:

Post by Agil Abdullah » Mon Sep 08, 2014 5:28 am

Javier Tovar said:
4.-The practice and error is what will help you know what is best, and no better, he's just in the way you settle your particular programming. For example, I use the IDE to make a screen without much effort and very nice, but otherwise I like programming with files myself typing the PRG screens not very sophisticated, but I make work easier. And now I combine these two environments !!!. It saves a lot of time !!! It is a matter of taste.

greetings Agil :)
100% agree with you. The key to mastering skill is Exercises, with trial and error, its teror and horor. :lol:

Salam Hangat (best regards) from Jakarta :)
Agil Abdullah Albatati (just call me Agil)
Programmer Never Surrender

User avatar
Agil Abdullah
Posts: 204
Joined: Mon Aug 25, 2014 11:57 am
Location: Jakarta, Indonesia
Contact:

Post by Agil Abdullah » Mon Sep 08, 2014 5:39 am

Esgici said:

Harbour : Is a multi-platform open source compiler for xBase programming language, as a continuation of Clipper Programming Language. You can use Harbour with or without HMG; as pure console mode or with another GUI facility.

HMG / MiniGUI : is also an open source GUI Library developed by Roberto Lopez, for Harbour Compiler, designed exclusively Windows platform only. You can't use HMG without Harbour.

HMG-IDE is a free utility developed by Roberto Lopez, builder of HMG. An Integrated Development Environment including a project builder and a
form designer; plus a DB Manager. You can use HMG library with or without HMG-IDE.

HMG and HMG-IDE now enhancing by our genius Dr. Soto 8-)

As you easily see and cited here with this three products we have a comprehensive and complete Windows programming toolkit or Clipper for Windows :arrow:

Please don't hesitate to ask any question you couldn't found answer in known sources; you know, "books doesn't include everything" ;)

Happy HMG'ing and hearty Salaams :D
1) That's all I need to know, the principles and its concept, to catch the big picture of Harbour-HMG to handle with and work on. Any detail thereof could be easier to take care of accordingly.

2) After taking advice from commentators in this thread, and learning fast, Now, I am preparing to publish HMG Tutorial on my blog in Indonesian Language, for beginners.


Syukron Katsir :) :)
Agil Abdullah Albatati (just call me Agil)
Programmer Never Surrender

User avatar
Agil Abdullah
Posts: 204
Joined: Mon Aug 25, 2014 11:57 am
Location: Jakarta, Indonesia
Contact:

Post by Agil Abdullah » Mon Sep 08, 2014 5:54 am

M Special note to: Dragancesu, Javier Tofar, Esgici:

1] I believe that my post in this thead represents common questions from programmers around the globe at their first experience with Harbour-HMG, especially when they are NOT familiar with OOP.

2] I'll never send the above questions anymore coz I've found what I am looking for. Your advice and help are highly appreciated. :D

3] After taking advice from commentators in this thread, and learning fast, Now, I am preparing to publish my first HMG Tutorial on my blog in Indonesian Language, for beginners.

Salam Hangat (Best Regards) from Jakarta.
Agil Abdullah Albatati (just call me Agil)
Programmer Never Surrender

User avatar
Rathinagiri
Posts: 5234
Joined: Tue Jul 29, 2008 6:30 pm
DBs Used: MariaDB, SQLite, SQLCipher and MySQL
Location: Sivakasi, India
Has thanked: 160 times
Been thanked: 154 times
Contact:

Post by Rathinagiri » Mon Sep 08, 2014 12:44 pm

Clipper programmers sometimes find it difficult to accommodate with HMG. The reason is the difference between TUI (Text User Interface) and GUI. In GUI, the program control is in the hands of the user and it is event driven. User can click on anything (say minimize button, maximize button, even another program running behind or any controls). So, it is our duty to design the whole window and wait for user's action and write procedures for each and every action of the user.

GUI offers many innovative controls like Grid, Combobox, Button, Spinner etc., as against only textbox in TUI. So, we have to eventually accommodate events for all these controls.

Now, coming to HMG as not only a GUI library but a bundle of all. Even though HMG is directly based on the latest Harbour versions, HMG comes as a bundle. You need not install any other software to build a windows application. Full stop. :) It contains the GUI library, PRG compiler, C Compiler and all the supporting software products to successfully build an application.

will continue...
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.

Post Reply