Una curiosidad:
Las clases de Harbour porque al referirse a ellas se añaden los paréntesis.
Ejemplo creamos :
CREATE CLASS foo
VAR name INIT 'FOO'
ENDCLASS
y para referirnos a ella hariamos
foo():new()
otra cosa, todas las clases de Harbour son estáticas o sea se pueden utilizar sin instanciarlas.
no como en otros lenguajes en los que hay clases instanciables y otras estáticas o de clase(que no permiten su instanciación), ejemplo c#
que por ejemplo hay clases que hay que instanciar.
Form2 Ventana2 = new Form2();
o otras como Math , que accedes directamente. Math.SQrt(90); // Son Estaticas no instanciables.
siento estar un poco liado.
Saludos.
Jose Vte.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Clases de Harbour
Re: Clases de Harbour
José Vicente,
en Harbour no existen las clases NO instanciables. Todas se pueden instanciar. Es más, la forma de instanciarlas es usando tan sólo la "función de clase". Así, para instanciar la clase foo, sólo hay que poner:
Fíjate que no he puesto :New() ni nada por el estilo. Con sólo ejecutar la función de clase se instancia un objeto de esa clase. La llamada a :New() sirve para inicializar el objeto. Podíamos haber usado :Create(), :Init(), :Initialize(), o cualquier otra cosa, pero en Xailer decidimos que iba a ser :New(), y que ese método además iba a recibir parámetros de inicialización, que casi siempre es oParent. En cualquier caso, esto es una regla de Xailer, no de Harbour estrictamente, aunque otras librerías de Harbour también usan :New() con los mismos o con otros parámetros.
Por otro lado, también tenemos algunas clases que las crea el propio Xailer, y por lo tanto no hay que instanciarlas: Application, Screen, Printer y AppData
en Harbour no existen las clases NO instanciables. Todas se pueden instanciar. Es más, la forma de instanciarlas es usando tan sólo la "función de clase". Así, para instanciar la clase foo, sólo hay que poner:
Código: Seleccionar todo
oFoo := Foo()
Por otro lado, también tenemos algunas clases que las crea el propio Xailer, y por lo tanto no hay que instanciarlas: Application, Screen, Printer y AppData
Re: Clases de Harbour
Muchisimas gracias Jose.
Cada dia se mas sobre Harbour.
Saludos.
Jose Vte.
Cada dia se mas sobre Harbour.

Saludos.
Jose Vte.