Page 1 of 1

Definir parametros en funciones de clases

Posted: Thu Apr 18, 2019 4:50 pm
by jvtecheto
Hola, que tal:

Una pregunta sobre las clases, estoy viendo como se definen y
observo que en la definicion de los metodos.
Por Ejemplo en la clase TAutoget de Daniel Garcia (Hay que dar las autorias)

METHOD KeyDown( nKey, nFlags )


METHOD OpenList() // Este metodo en su definicion no tiene parametros.

pero cuando se implementa , aparecen parametros.
METHOD OpenList( nKey, nFlags ) CLASS TAutoGet

local nTop := ::nBottom //* WIN_CHARPIX_H
local nLeft := ::nLeft //* WIN_CHARPIX_W

¿Cuando se tienen que declarar los parametros y cuando no?

Tambien observo que ::nBottom , no pertenece a la clase TAutoget, o sea no esta definido en DATA, enconces
¿A que se variable se refiere con ::nBottom?

Otra cosa que veo . Por ejemplo
Eval( ::bCloseList, Self )

Tengo entendido que :: es sinonimo de Self. Entonces.
¿A que se refiere con Self?

Gracias por vuestra ayuda amigos.

Jose.

Re: Definir parametros en funciones de clases

Posted: Thu Apr 18, 2019 5:21 pm
by Antonio Linares
José,

> ¿Cuando se tienen que declarar los parametros y cuando no?

En la cabecera de la Clase (entre CLASS y ENDCLASS), el indicar los parámetros es opcional, pero muy recomendable el especificarlos para entender cada método los parámetros que precisa.

>
Tambien observo que ::nBottom , no pertenece a la clase TAutoget, o sea no esta definido en DATA, enconces
¿A que se variable se refiere con ::nBottom?
>

Cuando hacemos:

CLASS TAutoGet FROM TGet

las DATAs de TGet están también accesibles desde TAutoGet. Y asi sucesivamente.

> :: y Self

:: es lo mismo que Self:

Es una abreviatura