Hola Antonio,
Quisiera proponer un cambio que hace tiempo lo tengo pensado porque me ha tra铆do uno que otro inconveniente cuando programas con clases.
En Fivewin.ch se usa "Self" como nombre de un parametro en algunos codeblocks. Eso acarrea alg煤n inconveniente cuando queremos usar comandos dentro de los m茅todos de una clase, porque en ese contexto el mismo lenguaje define Self, y se produce alguna situaci贸n amb铆gua, que se podr铆a evitar renombrando el par谩metro.
Entiendo que ese cambio es incompatible para atr谩s si se ha usado a Self o :: dentro del codeblock para referir al control definido, pero no creo que hayan muchos casos
porque, en general, donde se usa el comando la referencia al objeto se puede obtener directamente usando la variable local que recoge el control.
En mi caso he probado de redefinir con translate Self con otro nombre en los comandos
pero no me ha funcionado, solo me queda modificarlos a mano.
Otra cosa que tambien me gustar铆a ser铆a que en fivewin se usase el m茅todo IsKindOf( <class> ) en lugar de ClassName en los controles, ya que si creamos una subclase muchas veces hay que modificar el codigo fuente original de FW para que las clases originales mantengan el comportamiento, con la complicaci贸n que eso conlleva al cambiar de versi贸n de FiveWin.
Espero que te resulten interesantes las sugerencias, que a m铆 me vendr铆as de maravillas
Un saludo,
Carlos.
Quisiera proponer un cambio que hace tiempo lo tengo pensado porque me ha tra铆do uno que otro inconveniente cuando programas con clases.
En Fivewin.ch se usa "Self" como nombre de un parametro en algunos codeblocks. Eso acarrea alg煤n inconveniente cuando queremos usar comandos dentro de los m茅todos de una clase, porque en ese contexto el mismo lenguaje define Self, y se produce alguna situaci贸n amb铆gua, que se podr铆a evitar renombrando el par谩metro.
#include 'hbclass.ch'
// MyFive.ch
#translate Self => __Self__
#include 'FiveWin.ch'
#untranslate Self
CLASS MiClase FROM TDialog
DATA oBB
Method New() Constructor
Method Close() INLINE ::End()
END CLASS
METHOD New( cResource ) CLASS MiClase
DEFINE DIALOG Self RESOURCE cResource
REDEFINE BTNBMP ::oBB ID ID_CANCEL OF Self ACTION ::Close()
Return SelfEntiendo que ese cambio es incompatible para atr谩s si se ha usado a Self o :: dentro del codeblock para referir al control definido, pero no creo que hayan muchos casos
porque, en general, donde se usa el comando la referencia al objeto se puede obtener directamente usando la variable local que recoge el control.
En mi caso he probado de redefinir con translate Self con otro nombre en los comandos
// MyFive.ch
#xtranslate Self => __Self__
#include 'FiveWin.ch'
#xuntranslate Self => __Self__pero no me ha funcionado, solo me queda modificarlos a mano.
Otra cosa que tambien me gustar铆a ser铆a que en fivewin se usase el m茅todo IsKindOf( <class> ) en lugar de ClassName en los controles, ya que si creamos una subclase muchas veces hay que modificar el codigo fuente original de FW para que las clases originales mantengan el comportamiento, con la complicaci贸n que eso conlleva al cambiar de versi贸n de FiveWin.
Espero que te resulten interesantes las sugerencias, que a m铆 me vendr铆as de maravillas
Un saludo,
Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"