Valor devuelto por un evento
Publicado: Jue Nov 17, 2016 9:17 am
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.
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.