Hi from California

New members who wish to post and participate in HMG Forum, please introduce yourselves in this forum by starting a new thread.

Moderator: Rathinagiri

User avatar
CalScot
Posts: 251
Joined: Thu Mar 21, 2013 12:22 am
Location: California
Been thanked: 1 time

Hi from California

Post by CalScot » Thu Mar 21, 2013 4:19 am

From a Scotsman in California, actually - which should fit right in with the international flavor that seems to already exist here.
I programmed in DB3 from '84 and in Clipper from '85, until I gave up programming about 10 years ago. I still had the programming bug, though, and decided to leap into the GUI environment for the first time about 10 days ago. (Four of those days have been spent trying to figure out why I couldn't get any data in my 3.1.1 browse box, until I finally found the solution here!)
Love HMG! It has certainly made my efforts a lot easier; I would probably have quit after a few days without it.
One last thing: My apologies, in advance, for all of the dumb questions and comments that will follow in my subsequent posts, but (as you'll see,) I need all the help I can get! Thanks!

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

Post by Rathinagiri » Thu Mar 21, 2013 5:09 am

Hi

Welcome to our forum.
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.

User avatar
mol
Posts: 3042
Joined: Thu Sep 11, 2008 5:31 am
Location: Myszków, Poland
Has thanked: 170 times
Been thanked: 92 times
Contact:

Post by mol » Thu Mar 21, 2013 12:21 pm

Hi!
welcome from Poland!

User avatar
danielmaximiliano
Posts: 2081
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Has thanked: 114 times
Been thanked: 15 times
Contact:

Post by danielmaximiliano » Thu Mar 21, 2013 1:59 pm

Bienvenido CalScot

encontrara usted aqui un monton de amigos que gustosos le daran una mano o aprenderan de usted algunos trucos en el viejo y querido Clipper.

desde Buenos Aires Argentina un gran abrazo.

Welcome CalScot

Here you will find a lot of friends who gladly will give a hand or you will learn some tricks in the good old Clipper.

from Buenos Aires Argentina a big hug.
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`.HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. : +54901169026142
Telegram Name : DaNiElMaXiMiLiAnO

mexicanto

Post by mexicanto » Mon Apr 08, 2013 7:31 pm

Hello Scot, my name is Daniel, an i live in socal (south california), if I can help you in anything about hmg or harbour, dont hesitate to drop me a line at my email: daniel.gaitan.carrillo AT gmai DOT com
(I am pretty much the same background as your)
db3plus, clipper summer 87
and now, i am back on dbase 8

User avatar
CalScot
Posts: 251
Joined: Thu Mar 21, 2013 12:22 am
Location: California
Been thanked: 1 time

Post by CalScot » Mon Apr 08, 2013 9:52 pm

Thanks, Daniel.

Just down the road, right?

I had a real struggle getting started, and it was frustrating that nothing seemed as easy as I'd have liked, but it's getting a lot easier and I feel that I'm at a second plateau.

I appreciate your offer, and might just take you up on it!

Thanks again - not just to you, but to everybody here who has been so helpful and so welcoming!

L. (CalScot)

User avatar
dhaine_adp
Posts: 457
Joined: Wed Aug 06, 2008 12:22 pm
Location: Manila, Philippines
Been thanked: 2 times

Post by dhaine_adp » Wed Apr 10, 2013 5:42 pm

Hi CalScot,

You can also try http://www.hmgextended.com/ (MiniGUI), http://vivaclipper.wordpress.com/ by our very own, Mr. Esgici. and http://www.oohg.org/ You will find other links there and the old Clipper repository http://the-oasis.net/

HmgExtended (MiniGUI) is fork from HMG (Roberto Lopez). Grigory Filatov (also member of this forum) regularly post updates to HMG Extended and Rathinagiri is the owner of this forum. So almost always you will also find us (maybe using different alias) on http://tech.groups.yahoo.com/group/harbourminigui/

You can have them both installed in your computer without a problem. Apps written on HMG can also be compiled and linked with MiniGUI (sometimes with a bare minimum syntax change but almost always it compiles without a problem). For me I loved 'em both and utilized whenever applicable to solve a problem. Both of them are good and both of them are great. HMG is all about simplicity and ease of use and HMG Extended is about adding more kick thus it is extended.

Normally documentations are outdated but still helpful yet the best way to learn is from the example. So I think you should also give it a try to shorten your learning curve. There's more HMGScript which is a wrapper for Java and HBQt (Harbour Qt, wrapper for Nokia Qt).

If you are familiar with Visual Basic 6, HMG behaves similar to it (in terms of controls) but not exactly because it is also Clipper and since it is now powered by Harbour, you can also take advantage of OOP through HB Class. Definitely you don't want to miss OLE and controlling MS Excel, Word, IE, Outlook, XML, etc. from your application from HMG. You will find them all in HMG and HMGExtended distribution package.

Regards,

Danny
Regards,

Danny
Manila, Philippines

User avatar
CalScot
Posts: 251
Joined: Thu Mar 21, 2013 12:22 am
Location: California
Been thanked: 1 time

Post by CalScot » Wed Apr 10, 2013 7:18 pm

Hi, Danny.

Thank you for your thoughtful response.

In the last few weeks, I have become a frequent visitor to VivaClipper, the-oasis, oohg, ousob, the Google group whose name I can't remember, the entire HMG-Help system and the samples subdirectory, as well as to this forum and to anywhere else that my many Google searches take me! Although I'm an old hand at logic/coding, getting it all to fit in behind the GUI tools that are so new to me is what has become very frustrating.

Trying to use the debug tool is my current problem (I have a bug that I just can't pinpoint, and writing status updates to a file after every line of code just isn't helping me to track it down!).
I put AltD(1) and AltD() at the top of Function Main, compile with /B, get the info boxes to tell me that Debug is active, and then nothing... it hangs before loading the app, and I just can't figure out how to get past that - yet!! Nothing I've found in all my searches (including this forum) has helped me to get it right. Any suggestions?

On a positive note, I am slowly but surely building "my library" of routines that work, that I understand, and that I can now implement without too much thinking! A lot of that is because of all the help that I've had from everyone here, so I really do appreciate it; I couldn't have done it without you!

I've never used Visual Basic. I was using Clipper Summer '87 until I stopped programming about 10-12 years ago (although I continued to use it occasionally, for quick & dirty data manipulation, until as recently as last month - which is when I decided to finally take the plunge). I had never used any visual programming tools until mid-March - in fact, I still have Clipper 5.01 and 5.3 in their original shrinkwrap (I just never got around to opening them) - so again, I really do appreciate the patience and support shown to me by everyone here as I learn to become less of a nuisance - thank you!

Regards,
CalScot

Leopoldo Blancas
Posts: 344
Joined: Wed Nov 21, 2012 7:14 pm
Location: México
Has thanked: 1 time
Been thanked: 4 times

Post by Leopoldo Blancas » Wed Apr 10, 2013 7:48 pm

Hola CalScot...

Yo se que cada quien tiene su método de aprendizaje pero... yo también deje Clipper hace como 12 años y empecé con HMG cuando lo descubrí. Y a mi lo que me ha ayudado mucho es revisar los ejemplos que trae HMG, y hago otros similares para empezar a comprenderlos... Y la verdad que ahora me siento que ya los conozco (aunque no los domino al 100%), pero ya me doy una idea de lo que quiero hacer y ya recurro a los ejemplos con más confianza, los copio y modifico sin temor a equivocarme... y si me da error ya +- se que es lo que esta pasando. Lo que quiero decirte es que empieza por lo simple y como vayas avanzando haces lo más complicado. Por que si no de otra manera, para mi, no avanzo con bases solidas... aunque sea poco pero solido....

Y la forma de escribir el código hay que hacerlo lo más ordenadamente posible, y lógico posible, y eso hay que repetirlo en cada aplicación para que se pueda recurrir a el sin estarlo buscando por todos lados...

Ahora si que empecé con una ventana que decía "Hola mundo ya estoy aquí..." (frase celebre de Clipper... jajaja)

Saludos
Polo
*---------------------------------------------------------------------------------------------------------------------------------------------------
Hello CalScot ...

I know everyone has their own method of learning but ... I also let Clipper 12 years ago and I started when I discovered HMG. And to me what has helped me is to review the examples brings HMG, and do the like to begin to understand ... And the fact that I now feel that I know them (although not 100% mastery), but give me an idea of what I do and as I turn to the examples with more confidence, copied and modified unequivocally ... and if I get error and + - is what is happening. What I mean is that it begins with the simple and as you progress you do more complicated. Because if not otherwise, to me, does not go along with a solid foundation ... even small but solid ....

And how to write the code have to do it as neatly as possible and logical as possible, and that it must be repeated for each application so you can use the non pregnant looking everywhere ...

Now if I started with a window saying "Hello world I'm here ..." (Clipper famous phrase ... jajaja)

regards
Polo

User avatar
dhaine_adp
Posts: 457
Joined: Wed Aug 06, 2008 12:22 pm
Location: Manila, Philippines
Been thanked: 2 times

Post by dhaine_adp » Wed Apr 10, 2013 8:38 pm

Hi CalScot,

Regarding debugging altd() is enough. After the application loads, you will get two application group on your taskbar. One is the debug window and the second is the main application window (your main form). Clicking them and selecting one or the other one will show you your code and let you step on each line (F8). If you can't see your code in either of the windows it means that the applications really hangs or the process is in your compiled library. If it is in the library you would need to link the source code of the library to the application to examine the codes. At least you are suspecting which particular module was that. You can move your altd() call prior to that module and try pressing F5 if the code pointer stops on the altd().

You can also try divide and conquer, I mean block comment a section of the code or module to see which particular type of condition is hugging the cpu. Then use MsgInfo() or MultiMessage().
Example: MsgInfo( cThisVar, "Test" ) .or. MultiMessage( nThis, "Test" ) .or.
MultiMessage( { nVar, cKey, lExpression }, "Test" ) sometimes I do like this:

Code: Select all

dbselectarea( "test" )
while .not. eof()

   //process here
   do case
/* block comment
      case expression
         .
         .
     
********** until here ***********/
       case your condition

   otherwise
       .
       .
   endcase
   dbselectarea( "test" )   // since clipper days I used dbselectarea() instead select
   dbskip()
   DO EVENTS      // if it is a CPU intensive process call do events to process windows
                        //  other events
end
Now you can MsgInfo() or MultiMessage() after each loop and exit after 10 loops by adding the appropriate codes to do so. There times that there are bugs that you cannot chase by debugger but also it helps.

Sometimes I do like this during debugging

Code: Select all

LOCAL zStat := ""

while .t.
   zStat += cThisString + HB_NTOS( nCount ) + HB_OSNEWLINE() // HB_NTOS() numeric to
                            // string, Harbour extension HB_OSNEWLINE(), CRLF, carriage return 
                            // and line feed
    if nCount > 10
       exit
    endif
end
System.Clipboard := zStat    // copy to the clipboard
** force program quit
DBCLOSEALL()  // close all database if required
RELEASE WINDOW ALL   // terminates HMG
QUIT                          // this will never get executed

After the apps terminate open notepad and CTRL+V to paste the result. You can also put a small sample or section of the code, otherwise try those methods described above that you think is applicable to your problem.

Regards,

Danny
Regards,

Danny
Manila, Philippines

Post Reply