Fundamentos

Fundamentos de Harbour MiniGUI

Nota Importante: Estos fundamentos, fueron creados al principio del desarrollo de HMG, con código puro y duro y sin gran cantidad de funciones que hoy existen en las últimas versiones. Además hoy en día con el IDE que trae integrado el mismo genera la mayoría de código para los programas. Pero sirva el primer original para comprender el motor principal de esta gran librería para generar programas para Windows tanto en 32 como 64 bits. con código xBase y recordando el gran Clipper, hoy en día sustituido por Harbour. 


Harbour MiniGUI implementa un modelo semi-oop.

En mi humilde opinión, este modelo se ajusta perfectamente a xBase ya que la meta de los creadores del dBase original fue la de obtener el máximo poder con el mínimo de esfuerzo. Esta fue la clave de su enorme éxito.

En la mayoría de los casos, los productos xBase para Windows consisten en un compilador xBase "atado" a un motor GUI OOP estándar, resultando en lenguajes "esquizoides", extremadamente fácil de usar en todos los aspectos, excepto la interfase de usuario.

He tratado de crear un sistema GUI consistente con la filosofía xBase, sin apegarme a estrictamente a ningún paradigma estándar.

Algunas ideas del modelo semi-oop usado en Harbour MiniGUI, fueron inspiradas por el compilador RAPID-Q creado por William Yu, cuyas brillantes ideas me inspiraron.

El Primer Programa

No sere muy original, este programa desplegará el mensaje 'Hola Mundo' :)

#include "hmg.ch"

Function Main

    DEFINE WINDOW Win_1 ;
        AT 0,0 ;
        WIDTH 400 ;
        HEIGHT 200 ;
        TITLE 'Tutor 01 - Hola Mundo!' ;
        MAIN

    END WINDOW

    ACTIVATE WINDOW Win_1

Return

El comando DEFINE WINDOW: Creará la ventana principal para el programa

Win_1: Es el nombre de la ventana

At 0,0: Indica la posición de la ventana (row=0,col=0)

WIDTH 400: Significa que la ventana tendrá 400 pixels de ancho.

HEIGHT 200:Significa que la ventana tendrá 200 pixels de alto.

TITLE 'Hola el Mundo! ': Indica el texto en la barra de título de la ventana.

MAIN: Indica que estamos definiendo la ventana principal de la aplicación (una ventana principal se requiere para todas las aplicaciones HMG)

ACTIVATE WINDOW Form_1: Muestrará la ventana e iniciará el ciclo de eventos.


La Forma Tradicional


El comportamiento o apariencia de una ventana o control, podría cambiarse con un comando al estilo xBase (MODIFY)

En el siguiente ejemplo, si quiere cambiarse el título de la ventana, podría usarse el siguiente comando:

MODIFY WINDOW Win_1 TITLE 'New Title'

Para obtener el título de la ventana:

FETCH WINDOW Win_1 TITLE TO cVar


La Forma Semi-OOP


Para hacer lo mismo puede usarse la siguiente sintaxis semi-oop:

Win_1.Title := 'New Title'

cVar := Win_1.Title