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.

Valor devuelto por un evento

Foro público de Xailer en español
Responder
jvtecheto
Mensajes: 127
Registrado: Jue Dic 19, 2013 1:18 pm

Valor devuelto por un evento

Mensaje por jvtecheto »

Buenos días :

De la pregunta del amigo Xevi sobre el método Insert() en la clase TDBBrowse me ha surgido la duda del valor de retorno de los eventos, ya que si miramos el código delos mismos siempre (o eso creo) devuelven NIL

si miramos parte de aquel código.

xRet := ::OnInsert() // aquí creo que se refiere al evento OnInsert de la clase padre, pero no lo se ....

IF Valtype( xRet ) == "L" .AND. !xRet // Pero aquí asume que le le ha pasado un valor lógico y el método OnInsert() de la clase padre devuelve NIL.(Lo he mirado)

El equipo Xailer no se han equivocado en el código y esperan un valor lógico, ¿Cómo es esto ...?

Sin embargo si parece ser que hay eventos que devuelven valor, código del evento OnClick de la clase TButton

METHOD Click() CLASS XButton

LOCAL lResult := ::OnClick() // Añadido por mi. Llama al al evento de la clase padre y le asigna valor lógico, creo que siempre devuelve 0

IF ::nModalResult != 0
IF ValType( lResult ) != "L" .OR. lResult
::oForm:nModalResult := ::nModalResult
::oForm:Close()
ENDIF
ENDIF

RETURN 0

Pero cuando colocas código en el evento Onclick del botón, este es el esqueleto y devuelve NIL

METHOD Button2Click( oSender ) CLASS TForm1

// Codigo

RETURN NIL

¿Alguien puede explicarme esto?

Gracias amigos.

Jose Vte.
jvtecheto
Mensajes: 127
Registrado: Jue Dic 19, 2013 1:18 pm

Re: Valor devuelto por un evento

Mensaje por jvtecheto »

Me respondo un poco...

De la pregunta del amigo Xevi sobre el método Insert() en la clase TDBBrowse me ha surgido la duda del valor de retorno de los eventos, ya que si miramos el código delos mismos siempre (o eso creo) devuelven NIL

xRet := ::OnInsert() // LLama al evento de su clase

IF Valtype( xRet ) == "L" .AND. !xRet //

Yo creo que debemos devolver nosotros un valor lógico en el Evento OnInsert()

Sin embargo si parece ser que hay eventos que devuelven valor, código del evento OnClick de la clase TButton

METHOD Click() CLASS XButton

LOCAL lResult := ::OnClick() // LLama al evento Onclick de su clase, es lo mismo que Self:Onclick()

IF ::nModalResult != 0
IF ValType( lResult ) != "L" .OR. lResult
::oForm:nModalResult := ::nModalResult
::oForm:Close()
ENDIF
ENDIF

RETURN 0

Error mio no es un evento es un método.

Pero cuando colocas código en el evento Onclick del botón, este es el esqueleto y devuelve NIL

METHOD Button2Click( oSender ) CLASS TForm1

// Codigo

RETURN NIL

Pero podemos forzar un RETURN nosotros con lo que queramos.

Buen fin de semana a todos.

Jose Vte.
Responder