Page 1 of 1

SOME CLARIFICATIONS... (PART II)

Posted: Sun Mar 28, 2010 1:05 am
by Roberto Lopez
The second part of this document will be devoted to the (IMHO) most outstanding cases of outdated technologies, low level techniques exposed to the users and design inconsistencies.


11. "IMAGELIST control - support for resources from bitmap's list".


ImageList is an image storage facility and its use is required for most controls that works with images.

HMG uses Imagelists for Button, CheckButton, ComboBox, Grid, Tab and Tree controls.

HMG requires from the user that only specify the image file or resource name to associate it with a control, HIDING complexities associated with such operations (ie: ImageList manipulation).

IMHO, there is no point on 'expose' a low-level component as an Imagelist to the user. That is not consistent with HMG overall design goals nor xBase spirit at all.


12. "MDI support"


MDI stands for "Multiple Document Interface".

MDI is a 'relic' from the Windows 3.x era.

MDI is usually confusing for the users and most of the modern software AVOID ITS USE.

This is the official Microsoft recommendation about MDI:

"MDI is an application-oriented model. Many new and intermediate users find it difficult to learn to use MDI applications. Therefore, many applications are switching to a document-oriented model. Therefore, you may want to consider other models for your user interface..."

You can check it at: http://msdn.microsoft.com/en-us/library ... S.85).aspx

Considering the difficulties that MDI presents to the users, I've avoided to adding to HMG. Instead I've created SplitBox control (based on REBAR Windows native control).


14. "TSBrowse library support"


This is another case of a new control with the same purpose of an existing one with new functionality added.

The main problem with this control is that it uses Clipper's standard OOP style instead HMG's one, so, its handling is not consistent with the rest of the HMG's GUI objects.


15. "BTNTEXTBOX control - extended TEXTBOX control with inserted button."


IMHO, creating a new control as a combination of two existing ones (TextBox and Button) only adds complexity to the library, driving to a steep learning curve.


16. "TOOLBAREX control - toolbar with a clauses <...> IMAGELIST, HOTIMAGELIST <...>"


Another duplicated control with some new added functionality. It requires access to the Imagelist low-level component.


17. "DEFINE FONT <...> RELEASE FONT <...>"


This case is similar to the ImageList one.

HMG uses font objects for almost all controls, HIDING complexities associated with its operation, so the user must only specify font features (as control properties) without to deal with font object creating, bounding, releasing, etc.

Exposing a low level object (as font) to the user is (IMHO) clearly inconsistent with HMG overall design goals.


18. "SET EVENTS FUNCTION TO <funcname> - define the user's events handling function"



Exposes low-level operating system internals.


19. "GETBOX control - Windows implementation of Harbour`s GET Class"


GETBOX is basically a TEXTBOX.

IMHO, the right path to achieve @...GET compatibility without creating a new control similar to an existent one, is to add the required new properties to the TEXTBOX control.

Such new (optional) properties (VALID, PICTURE, RANGE, etc.) could be used for whose wanting full Clipper compatibility for data entry.


20. All the other things...


Regarding the other things not described here, you'll find some more minor problems, but some interesting additions too.

I've added such 'interesting' ones to my TODO list :)


To be continued...

Re: SOME CLARIFICATIONS... (PART II)

Posted: Sun Mar 28, 2010 1:40 am
by fchirico
SPANISH:
En mi opinión creo que cuando una persona del foro pregunta las diferencias entre HMG y HMG Extended, por una cuestión de ética deben ser los demas usuarios que respondan y no los propios creadores. Sí, los creadores pueden dar su opinion cuando los demás dicen algo incorrecto o dar su opinión para completar una idea o dar su opinión cuando la pregunta es directamente a la persona creadora.

Como dice Sudip esto no es una competición ( y no digo que alguien lo haya mencionado ) y lo importante es que se alimenta el Open Source.

Creo que a medida que pasa el tiempo cada uno sabe qué HMG le conviene utilizar.

En mi caso personal, como ya lo he dicho anteriormente, utilizo HMG por su confianza, soporte y estabilidad que para mí son 3 de los 4 valores más importantes a tener en cuenta en un lenguaje de programación. El cuarto valor es la compatibilidad con versiones anteriores.

Gracias Roberto por crear esto que se llama "Harbour Mini Gui" !!!

ENGLISH:
In my opinion I think that when a forum question the differences between HMG and HMG Extended, as a matter of ethics should be the other members who respond and not the creators themselves. Yes, the creators can give their opinion when others say something wrong or give advice to complete a thought or give his opinion when the question is directly to the creator.

As Sudip says this is not a competition (and not saying that someone has mentioned) and the important thing is that feeds the Open Source.

I think as time goes everyone knows what you should use HMG.

In my own case, as I have said before, I use HMG for their trust, support and stability for me are 3 of the 4 most important values to consider in a programming language. The fourth value is the backward compatibility.

Thanks Robert for creating this thing called "Harbour Mini Gui" !!!

Re: SOME CLARIFICATIONS... (PART II)

Posted: Sun Mar 28, 2010 3:16 am
by Vanguarda
My friend Roberto,

Why some peoples did such statements about HMG oficial?

AFIK, you was who started this work. In some place (some time ago) i read your history and what occur when you start this amazing work.

Everybody know that you work inspire many programmers around the world, and that from your work born others IDEs and LIBs for programming with harbour.

So, don´t disturb youself.

You are a great human. Great programmer. And save a lot of clipper programmers that search any way to survive. You are our master.

PS: I know, you dont like be call of master. :)




Fernando, I agree with you

With my best regards,

Re: SOME CLARIFICATIONS... (PART II)

Posted: Sun Mar 28, 2010 5:51 am
by sudip
Hello Roberto,

I think myself as a learner of HMG. I learned many things from your discussion. :)

Thank you very much :)

With best regards.

Sudip

Re: SOME CLARIFICATIONS... (PART II)

Posted: Sun Mar 28, 2010 6:07 am
by Rathinagiri
I like HMG because it is sticking to some standard. Even before releasing version 3.0, about 20+ forum test versions had been released for bug fixing.

Roberto, thanks for your time and effort to explain these things.

I thought of TSBrowse be the required thing to be implemented in HMG. However, when cell navigation was made possible in the grid control, the requirement of a separate TSBrowse control got vanished.

And what I still wonder about is, the speed and robustness of the data bound grid! A SPECIAL thanks for that.

Re: SOME CLARIFICATIONS... (PART II)

Posted: Sun Mar 28, 2010 8:02 am
by sudip
Rathi, I agree with you :)

Adding one point - I also prefer Mingw compiler because 1) it's fast 2) open source 3) active development 4) can be trnasferred to 64 bit in future :)