FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour clase modificada sobre clase standard
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
clase modificada sobre clase standard
Posted: Sat Oct 28, 2017 12:09 AM

Saludos

Quisiera saber como puedo utilizar una clase (La TBar) modificada para que sea prioritaria dobre la TBar standard.

Gracias de antemano

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: clase modificada sobre clase standard
Posted: Sat Oct 28, 2017 08:01 AM
Hola Compuin,

lo ideal sería que las clases viniesen con una clase intermedia vacía, como está hecho en la libreria de THaruPdf, no queda otro remedio que modificar el codigo fuente de la clase original.

La forma más práctica de modificar una clase original es renombrar la clase usando el preprocesador y creando la tuya propia con el nombre de la original.

Primero copias la clase original a tu proyecto, en este caso la TBar.prg.

Justo antes donde define la clase, haces un define del nombre a otro. (El token Tbar se transforma en una constante)

Code (fw): Select all Collapse
// Esto es lo que tu añades
#define TBar TFWBar

CLASS Tbar FROM TControl .....


De esta manera la clase queda renombrada y ya puedes crear la tuya propia a partir de esta:


// MyTBar.prg

Code (fw): Select all Collapse
CLASS TBar FROM TFWBar

// ... Tu cĂłdigo


Asi cuando tengas la nueva version de FW, solo tienes que incorporar la nueva TBar, añadirle la línea del define, y ya está. Además todo el código que cambies estará en un prg separado.

Un saludo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: clase modificada sobre clase standard
Posted: Sat Oct 28, 2017 12:44 PM

Carlos

Muchas gracias!

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Continue the discussion