Hola,
Este trozo de código:
METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
IF oNextCtl != ::oGeneralAFCO //es un control tdbEdit.
// Vamos a la siguientes pestaña
::oFolderPageTecnico:Select()
ENDIF
RETURN Nil
Y me da este error:
TFRMARTICULOV:DBEDITBTN2EXIT(962)
Error BASE/1072 Error de argumento: <>
Argumentos: ( [ 1] = Tipo: O Valor: [ 2] = Tipo: O Valor: )
¿Por qué?
--
Saludos y gracias,
José Luis Capel
www.capelblog.com vuelve a estar online!!
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.
¿Es incorrecto comparar dos objetos entre si?
¿Es incorrecto comparar dos objetos entre si?
José Luis,
Si mal no recuerdo, las comparaciones entre objetos debe hacerse utilizando == (exactamente igual)
Así pues
> METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
>
> IF !(oNextCtl == ::oGeneralAFCO) //es un control tdbEdit.
> // Vamos a la siguientes pestaña
> ::oFolderPageTecnico:Select()
> ENDIF
>
> RETURN Nil
Un Saludo,
Xevi.
"José Luis Capel" <jose.luis@capelsoft.com> escribió en el mensaje de noticias news:47321ba4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> Este trozo de código:
>
> METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
>
> IF oNextCtl != ::oGeneralAFCO //es un control tdbEdit.
> // Vamos a la siguientes pestaña
> ::oFolderPageTecnico:Select()
> ENDIF
>
> RETURN Nil
>
> Y me da este error:
>
> TFRMARTICULOV:DBEDITBTN2EXIT(962)
> Error BASE/1072 Error de argumento: <>
> Argumentos: ( [ 1] = Tipo: O Valor: [ 2] = Tipo: O Valor: )
>
> ¿Por qué?
>
> --
> Saludos y gracias,
> José Luis Capel
> www.capelblog.com vuelve a estar online!!
>
--
Si mal no recuerdo, las comparaciones entre objetos debe hacerse utilizando == (exactamente igual)
Así pues
> METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
>
> IF !(oNextCtl == ::oGeneralAFCO) //es un control tdbEdit.
> // Vamos a la siguientes pestaña
> ::oFolderPageTecnico:Select()
> ENDIF
>
> RETURN Nil
Un Saludo,
Xevi.
"José Luis Capel" <jose.luis@capelsoft.com> escribió en el mensaje de noticias news:47321ba4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> Este trozo de código:
>
> METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
>
> IF oNextCtl != ::oGeneralAFCO //es un control tdbEdit.
> // Vamos a la siguientes pestaña
> ::oFolderPageTecnico:Select()
> ENDIF
>
> RETURN Nil
>
> Y me da este error:
>
> TFRMARTICULOV:DBEDITBTN2EXIT(962)
> Error BASE/1072 Error de argumento: <>
> Argumentos: ( [ 1] = Tipo: O Valor: [ 2] = Tipo: O Valor: )
>
> ¿Por qué?
>
> --
> Saludos y gracias,
> José Luis Capel
> www.capelblog.com vuelve a estar online!!
>
--
¿Es incorrecto comparar dos objetos entre si?
Xevi,
Gracias!!
Era eso.
No conocía yo esa peculiaridad de las comparaciones entre objetos.
¿Alguien puede explicar por que se tiene que hacer de esa manera?
--
Saludos,
José Luis Capel
www.capelblog.com vuelve a estar online!!
"Xevi" <xevicomas@gmail.com> escribió en el mensaje de noticias news:[email=47321c4c@ozsrv2.ozlan.local...]47321c4c@ozsrv2.ozlan.local...[/email]
José Luis,
Si mal no recuerdo, las comparaciones entre objetos debe hacerse utilizando == (exactamente igual)
Así pues
> METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
>
> IF !(oNextCtl == ::oGeneralAFCO) //es un control tdbEdit.
> // Vamos a la siguientes pestaña
> ::oFolderPageTecnico:Select()
> ENDIF
>
> RETURN Nil
Un Saludo,
Xevi.
"José Luis Capel" <jose.luis@capelsoft.com> escribió en el mensaje de noticias news:47321ba4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> Este trozo de código:
>
> METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
>
> IF oNextCtl != ::oGeneralAFCO //es un control tdbEdit.
> // Vamos a la siguientes pestaña
> ::oFolderPageTecnico:Select()
> ENDIF
>
> RETURN Nil
>
> Y me da este error:
>
> TFRMARTICULOV:DBEDITBTN2EXIT(962)
> Error BASE/1072 Error de argumento: <>
> Argumentos: ( [ 1] = Tipo: O Valor: [ 2] = Tipo: O Valor: )
>
> ¿Por qué?
>
> --
> Saludos y gracias,
> José Luis Capel
> www.capelblog.com vuelve a estar online!!
>
--
Gracias!!
Era eso.
No conocía yo esa peculiaridad de las comparaciones entre objetos.
¿Alguien puede explicar por que se tiene que hacer de esa manera?
--
Saludos,
José Luis Capel
www.capelblog.com vuelve a estar online!!
"Xevi" <xevicomas@gmail.com> escribió en el mensaje de noticias news:[email=47321c4c@ozsrv2.ozlan.local...]47321c4c@ozsrv2.ozlan.local...[/email]
José Luis,
Si mal no recuerdo, las comparaciones entre objetos debe hacerse utilizando == (exactamente igual)
Así pues
> METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
>
> IF !(oNextCtl == ::oGeneralAFCO) //es un control tdbEdit.
> // Vamos a la siguientes pestaña
> ::oFolderPageTecnico:Select()
> ENDIF
>
> RETURN Nil
Un Saludo,
Xevi.
"José Luis Capel" <jose.luis@capelsoft.com> escribió en el mensaje de noticias news:47321ba4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> Este trozo de código:
>
> METHOD DBEditBtn2Exit( oSender, oNextCtl ) CLASS tfrmArticuloV
>
> IF oNextCtl != ::oGeneralAFCO //es un control tdbEdit.
> // Vamos a la siguientes pestaña
> ::oFolderPageTecnico:Select()
> ENDIF
>
> RETURN Nil
>
> Y me da este error:
>
> TFRMARTICULOV:DBEDITBTN2EXIT(962)
> Error BASE/1072 Error de argumento: <>
> Argumentos: ( [ 1] = Tipo: O Valor: [ 2] = Tipo: O Valor: )
>
> ¿Por qué?
>
> --
> Saludos y gracias,
> José Luis Capel
> www.capelblog.com vuelve a estar online!!
>
--
-
- Mensajes: 620
- Registrado: Jue Mar 23, 2006 2:39 am
¿Es incorrecto comparar dos objetos entre si?
José Luis Capel escribió:
> No conocía yo esa peculiaridad de las comparaciones entre objetos.
>
> ¿Alguien puede explicar por que se tiene que hacer de esa manera?
Supongo que porque internamente un objeto es en realidad un ARRAY, luego
entonces "medio" comparar arrays entre si puede no resultar tan
efectivo como comparar EXACTAMENTE 2 arrays.
Saludos
Rene Flores
http://www.ciber-tec.com
> No conocía yo esa peculiaridad de las comparaciones entre objetos.
>
> ¿Alguien puede explicar por que se tiene que hacer de esa manera?
Supongo que porque internamente un objeto es en realidad un ARRAY, luego
entonces "medio" comparar arrays entre si puede no resultar tan
efectivo como comparar EXACTAMENTE 2 arrays.
Saludos
Rene Flores
http://www.ciber-tec.com
¿Es incorrecto comparar dos objetos entre si?
José Luis,
En mi humilde opinión no. No es incorrecto comparar dos objetos entre si para determinar si es la misma "referencia", es una
ayuda del lenguaje a la programación y _ayudar a la programación_ es la finalidad principal de un lenguaje de alto nivel.
Por *coherencia* "que es lo más importante de un lenguaje", si disponemos del operador "==" deberíamos disponer del operador "!=".
José Luis Capel escribió:
> ¿Alguien puede explicar por que se tiene que hacer de esa manera?
>
Básicamente porque no se ha implementado la resolución de operadores de clase "por defecto, internamente" para este fin, se
utiliza la particularidad que una clase es una Array .-
Local lRes := HB_INLINE( Application ){
PHB_ITEM pVar = hb_param( 1, HB_IT_ANY );
hb_retl( HB_IS_ARRAY( pVar ) );
}
LogDebug( iif( lRes, "Es Array", "No es Array") )
Y en Clipper, que *fue* un _proyecto privativo_ y todos sabemos como acabo para la comunidad de programadores, no se implemento
para Arrays: las clases tal y como las conocemos hoy en día en harbour, no existían.
Hoy en día existen muchos proyectos privativos para la programación en xBase, hasta vuelve a salir el mítico dBase, pero la baza
principal de Harbour siendo mejor o peor, con más o menos cosas, es que sea un proyecto abierto no privativo aunque algunos se
empeñen en cambiarlo: a fecha de hoy la lista de desarrollo de xHarbour sigue cerrada demostrando que "la estupidez humana es
infinita". Creerme, merece la pena luchar para que siga siendo así y estoy deseando que esta GUI-IDE se compile y trabaje con
*Harbour*.
Un saludo
Xavi
En mi humilde opinión no. No es incorrecto comparar dos objetos entre si para determinar si es la misma "referencia", es una
ayuda del lenguaje a la programación y _ayudar a la programación_ es la finalidad principal de un lenguaje de alto nivel.
Por *coherencia* "que es lo más importante de un lenguaje", si disponemos del operador "==" deberíamos disponer del operador "!=".
José Luis Capel escribió:
> ¿Alguien puede explicar por que se tiene que hacer de esa manera?
>
Básicamente porque no se ha implementado la resolución de operadores de clase "por defecto, internamente" para este fin, se
utiliza la particularidad que una clase es una Array .-
Local lRes := HB_INLINE( Application ){
PHB_ITEM pVar = hb_param( 1, HB_IT_ANY );
hb_retl( HB_IS_ARRAY( pVar ) );
}
LogDebug( iif( lRes, "Es Array", "No es Array") )
Y en Clipper, que *fue* un _proyecto privativo_ y todos sabemos como acabo para la comunidad de programadores, no se implemento
para Arrays: las clases tal y como las conocemos hoy en día en harbour, no existían.
Hoy en día existen muchos proyectos privativos para la programación en xBase, hasta vuelve a salir el mítico dBase, pero la baza
principal de Harbour siendo mejor o peor, con más o menos cosas, es que sea un proyecto abierto no privativo aunque algunos se
empeñen en cambiarlo: a fecha de hoy la lista de desarrollo de xHarbour sigue cerrada demostrando que "la estupidez humana es
infinita". Creerme, merece la pena luchar para que siga siendo así y estoy deseando que esta GUI-IDE se compile y trabaje con
*Harbour*.
Un saludo
Xavi