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.
Errro onexit devolver foco
Errro onexit devolver foco
Estoy en un tdbedit el evento onexit
los que tengo puesto es lo siguiente:
METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
local DATANI, control := .f.
NN_OFI := ::NN_OFI:VALUE
CONTROLCROTAL()
::NN_OFI:VALUE := NN_OFI
CONTROLTRABA()
::NN_TRA:VALUE := NN_TRA
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF ::oDbfDatosAnimal:SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
control := .t.
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
END IF
END WITH
if control
::NN_OFI:setfocus := .f.
end if
RETURN Nil
Esto anterior esta bien
pero cuando vuelve a mismo control da el siguiente error
TFANIMALES:NN_OFIEXIT(127)
Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
Argumentos: ()
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBEDIT:_SETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFANIMALES:NN_OFIEXIT (127)
TDBEDIT:ONEXIT (0)
TDBEDIT:VALID (906)
TFANIMALES:GONEXTCONTROL (0)
Esto es así o como se hace bien
--
los que tengo puesto es lo siguiente:
METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
local DATANI, control := .f.
NN_OFI := ::NN_OFI:VALUE
CONTROLCROTAL()
::NN_OFI:VALUE := NN_OFI
CONTROLTRABA()
::NN_TRA:VALUE := NN_TRA
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF ::oDbfDatosAnimal:SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
control := .t.
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
END IF
END WITH
if control
::NN_OFI:setfocus := .f.
end if
RETURN Nil
Esto anterior esta bien
pero cuando vuelve a mismo control da el siguiente error
TFANIMALES:NN_OFIEXIT(127)
Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
Argumentos: ()
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBEDIT:_SETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFANIMALES:NN_OFIEXIT (127)
TDBEDIT:ONEXIT (0)
TDBEDIT:VALID (906)
TFANIMALES:GONEXTCONTROL (0)
Esto es así o como se hace bien
--
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
Errro onexit devolver foco
Saludos:
Esto dice la ayuda:
TStdControl:OnExit
Evento que se produce cada vez que pierde foco el control.
Parametros:
<oSender>:
Referencia al objeto que provoca el evento
<oNextCtl>:
Objeto que va a recibir el foco
Valor Retorno:
<Nil>:
Ninguna acción
<.F.>:
Se anula la perdida de foco en el control y por lo tanto no lo recibe
oNextCtl
Lo que quiere decir que debes de controlar lo que debuelve RETURN al
final si es Nil no hace nada si es False pues no avanza la siguiente y
te deja en el mismo que estabas
LOCAL Control := Nil
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF :SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
Control := .F.
END IF
END WITH
Return Control
PILO escribió:
> Estoy en un tdbedit el evento onexit
> los que tengo puesto es lo siguiente:
>
> METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
> local DATANI, control := .f.
> NN_OFI := ::NN_OFI:VALUE
> CONTROLCROTAL()
> ::NN_OFI:VALUE := NN_OFI
> CONTROLTRABA()
> ::NN_TRA:VALUE := NN_TRA
> WITH OBJECT ::oDbfDatosAnimal
> :OrdSetFocus( "N_OFI" )
> :GOTOP()
> //FIND(::NN_OFI:VALUE)
> IF ::oDbfDatosAnimal:SEEK( NN_OFI )
> MSGINFO("ANIMAL ENCONTRADO")
> control := .t.
> ELSE
> MSGINFO("ANIMAL NO ENCONTRADO")
> END IF
> END WITH
> if control
> ::NN_OFI:setfocus := .f.
> end if
> RETURN Nil
> Esto anterior esta bien
> pero cuando vuelve a mismo control da el siguiente error
> TFANIMALES:NN_OFIEXIT(127)
> Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
> Argumentos: ()
> Subsistema: BASE
> Código de error: 1005
> Estado: .F.
> Descripción: Message not found
> Operación: TDBEDIT:_SETFOCUS
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TFANIMALES:NN_OFIEXIT (127)
> TDBEDIT:ONEXIT (0)
> TDBEDIT:VALID (906)
> TFANIMALES:GONEXTCONTROL (0)
> Esto es así o como se hace bien
Esto dice la ayuda:
TStdControl:OnExit
Evento que se produce cada vez que pierde foco el control.
Parametros:
<oSender>:
Referencia al objeto que provoca el evento
<oNextCtl>:
Objeto que va a recibir el foco
Valor Retorno:
<Nil>:
Ninguna acción
<.F.>:
Se anula la perdida de foco en el control y por lo tanto no lo recibe
oNextCtl
Lo que quiere decir que debes de controlar lo que debuelve RETURN al
final si es Nil no hace nada si es False pues no avanza la siguiente y
te deja en el mismo que estabas
LOCAL Control := Nil
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF :SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
Control := .F.
END IF
END WITH
Return Control
PILO escribió:
> Estoy en un tdbedit el evento onexit
> los que tengo puesto es lo siguiente:
>
> METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
> local DATANI, control := .f.
> NN_OFI := ::NN_OFI:VALUE
> CONTROLCROTAL()
> ::NN_OFI:VALUE := NN_OFI
> CONTROLTRABA()
> ::NN_TRA:VALUE := NN_TRA
> WITH OBJECT ::oDbfDatosAnimal
> :OrdSetFocus( "N_OFI" )
> :GOTOP()
> //FIND(::NN_OFI:VALUE)
> IF ::oDbfDatosAnimal:SEEK( NN_OFI )
> MSGINFO("ANIMAL ENCONTRADO")
> control := .t.
> ELSE
> MSGINFO("ANIMAL NO ENCONTRADO")
> END IF
> END WITH
> if control
> ::NN_OFI:setfocus := .f.
> end if
> RETURN Nil
> Esto anterior esta bien
> pero cuando vuelve a mismo control da el siguiente error
> TFANIMALES:NN_OFIEXIT(127)
> Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
> Argumentos: ()
> Subsistema: BASE
> Código de error: 1005
> Estado: .F.
> Descripción: Message not found
> Operación: TDBEDIT:_SETFOCUS
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TFANIMALES:NN_OFIEXIT (127)
> TDBEDIT:ONEXIT (0)
> TDBEDIT:VALID (906)
> TFANIMALES:GONEXTCONTROL (0)
> Esto es así o como se hace bien
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
Errro onexit devolver foco
Saludos:
Otro consejo:
Porque haces esto:
NN_OFI := ::NN_OFI:VALUE
Cuando en oSender tienes la referencia al control sobre el que haces el
Exit por lo tanto oSender:Value es lo mismo que ::NN_OFI:Value
Todo lo demás que hace referencia a ese control sobra.
José Ramón Castro Polinio.
PILO escribió:
> Estoy en un tdbedit el evento onexit
> los que tengo puesto es lo siguiente:
>
> METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
> local DATANI, control := .f.
> NN_OFI := ::NN_OFI:VALUE
> CONTROLCROTAL()
> ::NN_OFI:VALUE := NN_OFI
> CONTROLTRABA()
> ::NN_TRA:VALUE := NN_TRA
> WITH OBJECT ::oDbfDatosAnimal
> :OrdSetFocus( "N_OFI" )
> :GOTOP()
> //FIND(::NN_OFI:VALUE)
> IF ::oDbfDatosAnimal:SEEK( NN_OFI )
> MSGINFO("ANIMAL ENCONTRADO")
> control := .t.
> ELSE
> MSGINFO("ANIMAL NO ENCONTRADO")
> END IF
> END WITH
> if control
> ::NN_OFI:setfocus := .f.
> end if
> RETURN Nil
> Esto anterior esta bien
> pero cuando vuelve a mismo control da el siguiente error
> TFANIMALES:NN_OFIEXIT(127)
> Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
> Argumentos: ()
> Subsistema: BASE
> Código de error: 1005
> Estado: .F.
> Descripción: Message not found
> Operación: TDBEDIT:_SETFOCUS
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TFANIMALES:NN_OFIEXIT (127)
> TDBEDIT:ONEXIT (0)
> TDBEDIT:VALID (906)
> TFANIMALES:GONEXTCONTROL (0)
> Esto es así o como se hace bien
Otro consejo:
Porque haces esto:
NN_OFI := ::NN_OFI:VALUE
Cuando en oSender tienes la referencia al control sobre el que haces el
Exit por lo tanto oSender:Value es lo mismo que ::NN_OFI:Value
Todo lo demás que hace referencia a ese control sobra.
José Ramón Castro Polinio.
PILO escribió:
> Estoy en un tdbedit el evento onexit
> los que tengo puesto es lo siguiente:
>
> METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
> local DATANI, control := .f.
> NN_OFI := ::NN_OFI:VALUE
> CONTROLCROTAL()
> ::NN_OFI:VALUE := NN_OFI
> CONTROLTRABA()
> ::NN_TRA:VALUE := NN_TRA
> WITH OBJECT ::oDbfDatosAnimal
> :OrdSetFocus( "N_OFI" )
> :GOTOP()
> //FIND(::NN_OFI:VALUE)
> IF ::oDbfDatosAnimal:SEEK( NN_OFI )
> MSGINFO("ANIMAL ENCONTRADO")
> control := .t.
> ELSE
> MSGINFO("ANIMAL NO ENCONTRADO")
> END IF
> END WITH
> if control
> ::NN_OFI:setfocus := .f.
> end if
> RETURN Nil
> Esto anterior esta bien
> pero cuando vuelve a mismo control da el siguiente error
> TFANIMALES:NN_OFIEXIT(127)
> Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
> Argumentos: ()
> Subsistema: BASE
> Código de error: 1005
> Estado: .F.
> Descripción: Message not found
> Operación: TDBEDIT:_SETFOCUS
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TFANIMALES:NN_OFIEXIT (127)
> TDBEDIT:ONEXIT (0)
> TDBEDIT:VALID (906)
> TFANIMALES:GONEXTCONTROL (0)
> Esto es así o como se hace bien
Errro onexit devolver foco
No me respondes a error que se produce despues de dovolver el foco al mismo
control
control
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
Errro onexit devolver foco
Saludos:
Puede que este equivocado si es así Ignacio me corregirá, pero si tu
devuelves RETURN Nil estas diciéndole que vaya al siguiente "oNextCtl" y
por otro lado le dices que vuelva al mismo ::NN_OFI:setfocus := .f., tú
que crees que te debe dar que es correcto, el evento ya hace lo que
tiene programado hacer dependiendo de lo que recibe de respuesta, si tú
se lo cambias el evento lo normal es que te dé un error de
posicionamiento "SetFocus"
José Ramón Castro.
PILO escribió:
> No me respondes a error que se produce despues de dovolver el foco al mismo
> control
>
>
Puede que este equivocado si es así Ignacio me corregirá, pero si tu
devuelves RETURN Nil estas diciéndole que vaya al siguiente "oNextCtl" y
por otro lado le dices que vuelva al mismo ::NN_OFI:setfocus := .f., tú
que crees que te debe dar que es correcto, el evento ya hace lo que
tiene programado hacer dependiendo de lo que recibe de respuesta, si tú
se lo cambias el evento lo normal es que te dé un error de
posicionamiento "SetFocus"
José Ramón Castro.
PILO escribió:
> No me respondes a error que se produce despues de dovolver el foco al mismo
> control
>
>
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
Errro onexit devolver foco
Ayuda de SetFocus
Establece el foco en el control. Es posible que el foco no se pueda
cambiar debido a que el evento OnExit del control que actualmente tiene
foco no permite su perdida, en dicho caso se puede forzar el cambio de
foco pasando un parametro .T. al método.
Tipo
Sólo después de Create
Parámetros
[<lForze>]
Si verdadero se fuerza la obtención de foco. Por defecto falso
Valor Retorno
<lFocused>
Devuelve verdadero si el foco ha sido recibido
En ningún caso se contempla FALSE si quieres forzar la obtención del
foco le deberías pasar TRUE, o preguntarle si es verdadero y es que
tiene el foco o falso si no lo tiene pero ::NN_OFI:setfocus := .f. no
está contemplado es un error de escritura ::NN_OFI:SetFocus(.T.)
o IF ::NN_OFI:SetFocus()
"Tengo el foco"
ELSE
"No lo tengo"
END
José Ramón Castro Polinio escribió:
> Saludos:
>
> Puede que este equivocado si es así Ignacio me corregirá, pero si tu
> devuelves RETURN Nil estas diciéndole que vaya al siguiente "oNextCtl" y
> por otro lado le dices que vuelva al mismo ::NN_OFI:setfocus := .f., tú
> que crees que te debe dar que es correcto, el evento ya hace lo que
> tiene programado hacer dependiendo de lo que recibe de respuesta, si tú
> se lo cambias el evento lo normal es que te dé un error de
> posicionamiento "SetFocus"
>
> José Ramón Castro.
>
> PILO escribió:
>> No me respondes a error que se produce despues de dovolver el foco al
>> mismo control
>>
Establece el foco en el control. Es posible que el foco no se pueda
cambiar debido a que el evento OnExit del control que actualmente tiene
foco no permite su perdida, en dicho caso se puede forzar el cambio de
foco pasando un parametro .T. al método.
Tipo
Sólo después de Create
Parámetros
[<lForze>]
Si verdadero se fuerza la obtención de foco. Por defecto falso
Valor Retorno
<lFocused>
Devuelve verdadero si el foco ha sido recibido
En ningún caso se contempla FALSE si quieres forzar la obtención del
foco le deberías pasar TRUE, o preguntarle si es verdadero y es que
tiene el foco o falso si no lo tiene pero ::NN_OFI:setfocus := .f. no
está contemplado es un error de escritura ::NN_OFI:SetFocus(.T.)
o IF ::NN_OFI:SetFocus()
"Tengo el foco"
ELSE
"No lo tengo"
END
José Ramón Castro Polinio escribió:
> Saludos:
>
> Puede que este equivocado si es así Ignacio me corregirá, pero si tu
> devuelves RETURN Nil estas diciéndole que vaya al siguiente "oNextCtl" y
> por otro lado le dices que vuelva al mismo ::NN_OFI:setfocus := .f., tú
> que crees que te debe dar que es correcto, el evento ya hace lo que
> tiene programado hacer dependiendo de lo que recibe de respuesta, si tú
> se lo cambias el evento lo normal es que te dé un error de
> posicionamiento "SetFocus"
>
> José Ramón Castro.
>
> PILO escribió:
>> No me respondes a error que se produce despues de dovolver el foco al
>> mismo control
>>
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
Errro onexit devolver foco
José Ramón Castro Polinio escribió:
> Ayuda de SetFocus
>
> Establece el foco en el control. Es posible que el foco no se pueda
> cambiar debido a que el evento OnExit del control que actualmente tiene
> foco no permite su perdida, en dicho caso se puede forzar el cambio de
> foco pasando un parametro .T. al método.
>
>
>
> Tipo
> Sólo después de Create
>
> Parámetros
> [<lForze>]
> Si verdadero se fuerza la obtención de foco. Por defecto falso
>
> Valor Retorno
> <lFocused>
> Devuelve verdadero si el foco ha sido recibido
>
>
> En ningún caso se contempla FALSE si quieres forzar la obtención del
> foco le deberías pasar TRUE, o preguntarle si es verdadero y es que
> tiene el foco o falso si no lo tiene pero ::NN_OFI:setfocus := .f. no
> está contemplado es un error de escritura ::NN_OFI:SetFocus(.T.)
Perdón el FALSE es valor por defecto cuando tu pones ::NN_OFI:SetFocus()
le estas pasando FALSE
> o IF ::NN_OFI:SetFocus()
> "Tengo el foco"
> ELSE
> "No lo tengo"
> END
>
> José Ramón Castro Polinio escribió:
>> Saludos:
>>
>> Puede que este equivocado si es así Ignacio me corregirá, pero si tu
>> devuelves RETURN Nil estas diciéndole que vaya al siguiente "oNextCtl"
>> y por otro lado le dices que vuelva al mismo ::NN_OFI:setfocus := .f.,
>> tú que crees que te debe dar que es correcto, el evento ya hace lo que
>> tiene programado hacer dependiendo de lo que recibe de respuesta, si
>> tú se lo cambias el evento lo normal es que te dé un error de
>> posicionamiento "SetFocus"
>>
>> José Ramón Castro.
>>
>> PILO escribió:
>>> No me respondes a error que se produce despues de dovolver el foco al
>>> mismo control
>>>
> Ayuda de SetFocus
>
> Establece el foco en el control. Es posible que el foco no se pueda
> cambiar debido a que el evento OnExit del control que actualmente tiene
> foco no permite su perdida, en dicho caso se puede forzar el cambio de
> foco pasando un parametro .T. al método.
>
>
>
> Tipo
> Sólo después de Create
>
> Parámetros
> [<lForze>]
> Si verdadero se fuerza la obtención de foco. Por defecto falso
>
> Valor Retorno
> <lFocused>
> Devuelve verdadero si el foco ha sido recibido
>
>
> En ningún caso se contempla FALSE si quieres forzar la obtención del
> foco le deberías pasar TRUE, o preguntarle si es verdadero y es que
> tiene el foco o falso si no lo tiene pero ::NN_OFI:setfocus := .f. no
> está contemplado es un error de escritura ::NN_OFI:SetFocus(.T.)
Perdón el FALSE es valor por defecto cuando tu pones ::NN_OFI:SetFocus()
le estas pasando FALSE
> o IF ::NN_OFI:SetFocus()
> "Tengo el foco"
> ELSE
> "No lo tengo"
> END
>
> José Ramón Castro Polinio escribió:
>> Saludos:
>>
>> Puede que este equivocado si es así Ignacio me corregirá, pero si tu
>> devuelves RETURN Nil estas diciéndole que vaya al siguiente "oNextCtl"
>> y por otro lado le dices que vuelva al mismo ::NN_OFI:setfocus := .f.,
>> tú que crees que te debe dar que es correcto, el evento ya hace lo que
>> tiene programado hacer dependiendo de lo que recibe de respuesta, si
>> tú se lo cambias el evento lo normal es que te dé un error de
>> posicionamiento "SetFocus"
>>
>> José Ramón Castro.
>>
>> PILO escribió:
>>> No me respondes a error que se produce despues de dovolver el foco al
>>> mismo control
>>>
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Errro onexit devolver foco
Pilo,
No se pueden hacer llamadas a SetFocus desde un evento OnExit. Utilizando el valor de retorno de OnExit puedes decidir si el foco se queda en el control o no.
No obstante el error que se produce es raro ya que TDBEdit si tiene un método SetFocus heredado de TControl (que no una data). No sabría a priori decirle el motivo del error.
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=457fff5b@news.xailer.com...]457fff5b@news.xailer.com...[/email]
Estoy en un tdbedit el evento onexit
los que tengo puesto es lo siguiente:
METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
local DATANI, control := .f.
NN_OFI := ::NN_OFI:VALUE
CONTROLCROTAL()
::NN_OFI:VALUE := NN_OFI
CONTROLTRABA()
::NN_TRA:VALUE := NN_TRA
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF ::oDbfDatosAnimal:SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
control := .t.
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
END IF
END WITH
if control
::NN_OFI:setfocus := .f.
end if
RETURN Nil
Esto anterior esta bien
pero cuando vuelve a mismo control da el siguiente error
TFANIMALES:NN_OFIEXIT(127)
Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
Argumentos: ()
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBEDIT:_SETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFANIMALES:NN_OFIEXIT (127)
TDBEDIT:ONEXIT (0)
TDBEDIT:VALID (906)
TFANIMALES:GONEXTCONTROL (0)
Esto es así o como se hace bien
--
No se pueden hacer llamadas a SetFocus desde un evento OnExit. Utilizando el valor de retorno de OnExit puedes decidir si el foco se queda en el control o no.
No obstante el error que se produce es raro ya que TDBEdit si tiene un método SetFocus heredado de TControl (que no una data). No sabría a priori decirle el motivo del error.
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=457fff5b@news.xailer.com...]457fff5b@news.xailer.com...[/email]
Estoy en un tdbedit el evento onexit
los que tengo puesto es lo siguiente:
METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
local DATANI, control := .f.
NN_OFI := ::NN_OFI:VALUE
CONTROLCROTAL()
::NN_OFI:VALUE := NN_OFI
CONTROLTRABA()
::NN_TRA:VALUE := NN_TRA
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF ::oDbfDatosAnimal:SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
control := .t.
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
END IF
END WITH
if control
::NN_OFI:setfocus := .f.
end if
RETURN Nil
Esto anterior esta bien
pero cuando vuelve a mismo control da el siguiente error
TFANIMALES:NN_OFIEXIT(127)
Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
Argumentos: ()
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBEDIT:_SETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFANIMALES:NN_OFIEXIT (127)
TDBEDIT:ONEXIT (0)
TDBEDIT:VALID (906)
TFANIMALES:GONEXTCONTROL (0)
Esto es así o como se hace bien
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
-
- Mensajes: 260
- Registrado: Lun Feb 07, 2005 1:20 pm
Errro onexit devolver foco
Me parece qu estas destruyendo el control NN_OFI al hacer NN_OFI:= NN_OFI:Value, estas cambiando el control por un valor y por tanto el setfocus deja de existir ya que NN_OFI ya no es un DBEDIT.
Pablo H
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=457fff5b@news.xailer.com...]457fff5b@news.xailer.com...[/email]
Estoy en un tdbedit el evento onexit
los que tengo puesto es lo siguiente:
METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
local DATANI, control := .f.
NN_OFI := ::NN_OFI:VALUE
CONTROLCROTAL()
::NN_OFI:VALUE := NN_OFI
CONTROLTRABA()
::NN_TRA:VALUE := NN_TRA
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF ::oDbfDatosAnimal:SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
control := .t.
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
END IF
END WITH
if control
::NN_OFI:setfocus := .f.
end if
RETURN Nil
Esto anterior esta bien
pero cuando vuelve a mismo control da el siguiente error
TFANIMALES:NN_OFIEXIT(127)
Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
Argumentos: ()
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBEDIT:_SETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFANIMALES:NN_OFIEXIT (127)
TDBEDIT:ONEXIT (0)
TDBEDIT:VALID (906)
TFANIMALES:GONEXTCONTROL (0)
Esto es así o como se hace bien
--
Pablo H
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=457fff5b@news.xailer.com...]457fff5b@news.xailer.com...[/email]
Estoy en un tdbedit el evento onexit
los que tengo puesto es lo siguiente:
METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
local DATANI, control := .f.
NN_OFI := ::NN_OFI:VALUE
CONTROLCROTAL()
::NN_OFI:VALUE := NN_OFI
CONTROLTRABA()
::NN_TRA:VALUE := NN_TRA
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF ::oDbfDatosAnimal:SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
control := .t.
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
END IF
END WITH
if control
::NN_OFI:setfocus := .f.
end if
RETURN Nil
Esto anterior esta bien
pero cuando vuelve a mismo control da el siguiente error
TFANIMALES:NN_OFIEXIT(127)
Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
Argumentos: ()
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBEDIT:_SETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFANIMALES:NN_OFIEXIT (127)
TDBEDIT:ONEXIT (0)
TDBEDIT:VALID (906)
TFANIMALES:GONEXTCONTROL (0)
Esto es así o como se hace bien
--
-
- Mensajes: 260
- Registrado: Lun Feb 07, 2005 1:20 pm
Errro onexit devolver foco
Perdon, no me habia fijado que NN_OFI es una variable, de lo dicho, nada
Pablo H
"Pablo Herranz" <pabloi@ibertabaco.com> escribió en el mensaje news:[email=45803fbf@news.xailer.com...]45803fbf@news.xailer.com...[/email]
Me parece qu estas destruyendo el control NN_OFI al hacer NN_OFI:= NN_OFI:Value, estas cambiando el control por un valor y por tanto el setfocus deja de existir ya que NN_OFI ya no es un DBEDIT.
Pablo H
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=457fff5b@news.xailer.com...]457fff5b@news.xailer.com...[/email]
Estoy en un tdbedit el evento onexit
los que tengo puesto es lo siguiente:
METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
local DATANI, control := .f.
NN_OFI := ::NN_OFI:VALUE
CONTROLCROTAL()
::NN_OFI:VALUE := NN_OFI
CONTROLTRABA()
::NN_TRA:VALUE := NN_TRA
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF ::oDbfDatosAnimal:SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
control := .t.
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
END IF
END WITH
if control
::NN_OFI:setfocus := .f.
end if
RETURN Nil
Esto anterior esta bien
pero cuando vuelve a mismo control da el siguiente error
TFANIMALES:NN_OFIEXIT(127)
Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
Argumentos: ()
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBEDIT:_SETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFANIMALES:NN_OFIEXIT (127)
TDBEDIT:ONEXIT (0)
TDBEDIT:VALID (906)
TFANIMALES:GONEXTCONTROL (0)
Esto es así o como se hace bien
--
Pablo H
"Pablo Herranz" <pabloi@ibertabaco.com> escribió en el mensaje news:[email=45803fbf@news.xailer.com...]45803fbf@news.xailer.com...[/email]
Me parece qu estas destruyendo el control NN_OFI al hacer NN_OFI:= NN_OFI:Value, estas cambiando el control por un valor y por tanto el setfocus deja de existir ya que NN_OFI ya no es un DBEDIT.
Pablo H
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=457fff5b@news.xailer.com...]457fff5b@news.xailer.com...[/email]
Estoy en un tdbedit el evento onexit
los que tengo puesto es lo siguiente:
METHOD NN_OFIExit( oSender, oNextCtl ) CLASS TFAnimales
local DATANI, control := .f.
NN_OFI := ::NN_OFI:VALUE
CONTROLCROTAL()
::NN_OFI:VALUE := NN_OFI
CONTROLTRABA()
::NN_TRA:VALUE := NN_TRA
WITH OBJECT ::oDbfDatosAnimal
:OrdSetFocus( "N_OFI" )
:GOTOP()
//FIND(::NN_OFI:VALUE)
IF ::oDbfDatosAnimal:SEEK( NN_OFI )
MSGINFO("ANIMAL ENCONTRADO")
control := .t.
ELSE
MSGINFO("ANIMAL NO ENCONTRADO")
END IF
END WITH
if control
::NN_OFI:setfocus := .f.
end if
RETURN Nil
Esto anterior esta bien
pero cuando vuelve a mismo control da el siguiente error
TFANIMALES:NN_OFIEXIT(127)
Error BASE/1005 Message not found: TDBEDIT:_SETFOCUS
Argumentos: ()
Subsistema: BASE
Código de error: 1005
Estado: .F.
Descripción: Message not found
Operación: TDBEDIT:_SETFOCUS
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TFANIMALES:NN_OFIEXIT (127)
TDBEDIT:ONEXIT (0)
TDBEDIT:VALID (906)
TFANIMALES:GONEXTCONTROL (0)
Esto es así o como se hace bien
--
Errro onexit devolver foco
PILO,
el error se debe a esto:
::NN_OFI:setfocus := .f.
SetFocus() es un método, no una propiedad, y por lo tanto no puedes asignarle ningún valor. Por otro lado, lo que tienes que hacer es lo que ya te han dicho: debes retornar .F. cuando quieras que el foco permanezca en el control y Nil o .T. si quieres permitir que el foco pase a otro control.
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
el error se debe a esto:
::NN_OFI:setfocus := .f.
SetFocus() es un método, no una propiedad, y por lo tanto no puedes asignarle ningún valor. Por otro lado, lo que tienes que hacer es lo que ya te han dicho: debes retornar .F. cuando quieras que el foco permanezca en el control y Nil o .T. si quieres permitir que el foco pase a otro control.
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
Errro onexit devolver foco
Lo que quiero hacer el el Tdbedit es
Cuando se salga del control, compruebe si es correcto el dato de control
si es correcto pasa al siguiente control
si no es correcto se queda en dicho control hasta que sea correcto,
Como puedo hacer esto
Gracias a todos por vuestra ayuda
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:[email=45805ef8@news.xailer.com...]45805ef8@news.xailer.com...[/email]
PILO,
el error se debe a esto:
::NN_OFI:setfocus := .f.
SetFocus() es un método, no una propiedad, y por lo tanto no puedes asignarle ningún valor. Por otro lado, lo que tienes que hacer es lo que ya te han dicho: debes retornar .F. cuando quieras que el foco permanezca en el control y Nil o .T. si quieres permitir que el foco pase a otro control.
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
Cuando se salga del control, compruebe si es correcto el dato de control
si es correcto pasa al siguiente control
si no es correcto se queda en dicho control hasta que sea correcto,
Como puedo hacer esto
Gracias a todos por vuestra ayuda
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:[email=45805ef8@news.xailer.com...]45805ef8@news.xailer.com...[/email]
PILO,
el error se debe a esto:
::NN_OFI:setfocus := .f.
SetFocus() es un método, no una propiedad, y por lo tanto no puedes asignarle ningún valor. Por otro lado, lo que tienes que hacer es lo que ya te han dicho: debes retornar .F. cuando quieras que el foco permanezca en el control y Nil o .T. si quieres permitir que el foco pase a otro control.
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
Errro onexit devolver foco
PILO,
Lo que quiero hacer el el Tdbedit es
Cuando se salga del control, compruebe si es correcto el dato de control
si es correcto pasa al siguiente control
si no es correcto se queda en dicho control hasta que sea correcto,
Como puedo hacer esto
Pues tan simple como devolver Nil o .T. si todo es correcto, y .F. si no lo es y quieres que se quede en el control.
P.ej., supongamos que no quieres permitir valores negativos, pues podrías poner simplemente:
METHOD TDBEdit1Exit( oSender, oNextCtl ) CLASS TForm1
RETURN oSender:Value >= 0
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
Lo que quiero hacer el el Tdbedit es
Cuando se salga del control, compruebe si es correcto el dato de control
si es correcto pasa al siguiente control
si no es correcto se queda en dicho control hasta que sea correcto,
Como puedo hacer esto
Pues tan simple como devolver Nil o .T. si todo es correcto, y .F. si no lo es y quieres que se quede en el control.
P.ej., supongamos que no quieres permitir valores negativos, pues podrías poner simplemente:
METHOD TDBEdit1Exit( oSender, oNextCtl ) CLASS TForm1
RETURN oSender:Value >= 0
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
Errro onexit devolver foco
Muchas gracias, ya entiendo mejor lo de los metodos, que antes no entendia
Funciona correctamente.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:45810eea$[email=2@news.xailer.com...]2@news.xailer.com...[/email]
PILO,
Lo que quiero hacer el el Tdbedit es
Cuando se salga del control, compruebe si es correcto el dato de control
si es correcto pasa al siguiente control
si no es correcto se queda en dicho control hasta que sea correcto,
Como puedo hacer esto
Pues tan simple como devolver Nil o .T. si todo es correcto, y .F. si no lo es y quieres que se quede en el control.
P.ej., supongamos que no quieres permitir valores negativos, pues podrías poner simplemente:
METHOD TDBEdit1Exit( oSender, oNextCtl ) CLASS TForm1
RETURN oSender:Value >= 0
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
Funciona correctamente.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:45810eea$[email=2@news.xailer.com...]2@news.xailer.com...[/email]
PILO,
Lo que quiero hacer el el Tdbedit es
Cuando se salga del control, compruebe si es correcto el dato de control
si es correcto pasa al siguiente control
si no es correcto se queda en dicho control hasta que sea correcto,
Como puedo hacer esto
Pues tan simple como devolver Nil o .T. si todo es correcto, y .F. si no lo es y quieres que se quede en el control.
P.ej., supongamos que no quieres permitir valores negativos, pues podrías poner simplemente:
METHOD TDBEdit1Exit( oSender, oNextCtl ) CLASS TForm1
RETURN oSender:Value >= 0
--
Un saludo,
José F. Giménez
http://www.xailer.com
--