Page 1 of 1

Información de funciones de Harbour para modificar clases [RESUELTO]

Posted: Tue Oct 21, 2025 12:49 pm
by jose_murugosa
Dónde puedo encontrar información detallada de todas las funciones para modificar clases de harbour, como por ejemplo:
__ClsAddMsg() y __clsModMsg()

Sobre todo con ejemplos práctivos.

Hay algo en este foro, pero me ha resultado confuso.

Gracias desde ya

Re: Información sobre funciones de Harbour para modificar clases

Posted: Tue Oct 21, 2025 3:39 pm
by carlos vargas
En harbour, sería necesario usar la Liberia xhb de \contrib
además de llamar al fichero de encabezado hbcls.ch que igualmente está en \contrib, con eso tendrás acceso a los comandos de modificación y extensión de clases tanto de data como de method.

Re: Información sobre funciones de Harbour para modificar clases

Posted: Tue Oct 21, 2025 4:26 pm
by Antonio Linares

Re: Información sobre funciones de Harbour para modificar clases

Posted: Wed Oct 22, 2025 12:17 am
by carlos vargas
Dando soporte remoto a josé, solo fue necesario lo que detallo en código.
nada de xhb :-)

Code: Select all | Expand

#include "hbclass.ch"
...
   OVERRIDE METHOD MyMethodName IN CLASS tMyClase WITH MyMethodName2

   EXTEND CLASS tMyClase WITH METHOD MyMethod
   ...
   FUNCTION MyMethod( ... )
      LOCAL Self := hb_QSelf()
      ...
      
    FUNCTION MyMethodName2( ... )
      LOCAL Self := hb_QSelf()
      ...
         

Re: Información sobre funciones de Harbour para modificar clases

Posted: Wed Oct 22, 2025 10:13 am
by jose_murugosa
Antonio, Carlos,
Gracias.

con la sugerencia de Carlos y agregando el fichero de cabecera "xhbcls.ch" funcionó perfectamente.

Code: Select all | Expand

...
#include "hbclass.ch"
#include "xhbcls.ch"

FUNCTION ...

   OVERRIDE METHOD MyMethodName IN CLASS tMyClase WITH MyMethodName2
   EXTEND CLASS tMyClase WITH METHOD MyMethod
   ...
   FUNCTION MyMethod( ... )
      LOCAL Self := hb_QSelf()
      ...
      
    FUNCTION MyMethodName2( ... )
      LOCAL Self := hb_QSelf()
      ...
Quedó divinísimo!! Y MUY SENCILLO.