Author | Topic: foco con xbpget | |
---|---|---|
Gustavo M. Burgos | foco con xbpget on Tue, 12 Jul 2011 20:13:35 -0300 Hola estoy tratando de hacer que cuando me posiciono con el ratón en algún campo que estoy editando con xbpget el puntero se quede en la primera posición a la izquierda, con datos numéricos no tengo problemas ya que utilizo los picture, pero con los puramente caracteres me queda el cursor donde icé click. y no en la primera posición a la izquierda. si alguno tiene algo le agradesco. Gracias de antemano Gustavo M. Burgos Rivadavia N° 278. Pcia Roque Saenz Peña - Chaco Argentina Fijo 03732-420635 Movil 3732-408559 Burmanspm@arnet.com.ar | |
Jorge L | Re: foco con xbpget on Tue, 12 Jul 2011 21:13:05 -0300 Gustavo intenta usar :setFirstChar() que es el equivalente del :pos en el get class "Gustavo M. Burgos" escribió en el mensaje de noticias:55ee6793$5dd48a6f$a2c5@news.alaska-software.com... Hola estoy tratando de hacer que cuando me posiciono con el ratón en algún campo que estoy editando con xbpget el puntero se quede en la primera posición a la izquierda, con datos numéricos no tengo problemas ya que utilizo los picture, pero con los puramente caracteres me queda el cursor donde icé click. y no en la primera posición a la izquierda. si alguno tiene algo le agradesco. Gracias de antemano Gustavo M. Burgos Rivadavia N° 278. Pcia Roque Saenz Peña - Chaco Argentina Fijo 03732-420635 Movil 3732-408559 Burmanspm@arnet.com.ar | |
Jos Luis Otermin [Alaska Software] | Re: foco con xbpget on Wed, 13 Jul 2011 01:04:27 -0300 Gustavo, Has visto el cdigo fuente que publiqu bajo la serie "ABM"? Debera funcionar tal como te hace falta. XbpGet.PRG y XbpGetC.PRG Espero haber sido de ayuda. Saludos Jose Luis Otermin Alaska Software "Gustavo M. Burgos" <Burmanspm@arnet.com.ar> escribi en el mensaje news:55ee6793$5dd48a6f$a2c5@news.alaska-software.com... > Hola estoy tratando de hacer que cuando me posiciono con el ratn en algn > campo que estoy editando con xbpget el puntero se quede en la primera > posicin a la izquierda, con datos numricos no tengo problemas ya que > utilizo los picture, pero con los puramente caracteres me queda el cursor > donde ic click. y no en la primera posicin a la izquierda. si alguno > tiene algo le agradesco. > Gracias de antemano > > -- > Gustavo M. Burgos > Rivadavia N 278. > Pcia Roque Saenz Pea - Chaco > Argentina > Fijo 03732-420635 > Movil 3732-408559 > Burmanspm@arnet.com.ar | |
Gustavo M. Burgos | Re: foco con xbpget on Thu, 14 Jul 2011 11:20:00 -0300 Hola jose luis. si probe con la GUI que presentaste, pero no me da bola. a lo mejor no me exprese bien el temas es el siguiente tengo varios xbpget uno es el apellido y nombres que almaceno en una variable m_nombre := space(30). y cuando hago click en cualquier parte del xbpget que corresponde el puntero del mouse queda donde ice click y no en el la primer posicion a las izquierda. con el enter y con el tab lo hace, pero con el mouse no, Gracias Gustavo M. Burgos Rivadavia N° 278. Pcia Roque Saenz Peña - Chaco Argentina Fijo 03732-420635 Movil 3732-408559 Burmanspm@arnet.com.ar | |
Jos Luis Otermin [Alaska Software] | Re: foco con xbpget on Thu, 14 Jul 2011 12:29:31 -0300 Hola Gustavo, Hay que considerar que el mouse puede posicionarse en cualquier punto porque a partir de ah se puede marcar, copiar/cortar y pegar. Si, como indicas, el mouse habilitara el foco al hacer click (izquierdo), no habra forma de marcar un trozo de texto. La otra posibilidad, es que el sobrevuelo del puntero habilite el foco. Eso significara que un simple movimiento del ratn provocara el cambio de foco y las bendiciones del usuario que tipea los datos. Para obtener lo que buscas (ms all de su conveniencia), se hace prctico usar la clase XbpGetC.prg ( XbpGetController() ). Qu puede hacerse? Usar herencia y crear una nueva clase de controlador de Gets. Por ejemplo: CLASS XbpGetNewController FROM XbpGetController EXPORTED: METHOD setDisplayFocus window obtains display focus METHOD killDisplayFocus window looses display focus METHOD setInputFocus window obtains input focus ENDCLASS En este caso conviene preguntarse qu accin deseo que el objeto realice para el caso del foco: 1 - Cuando el puntero del ratn pasa por encima: setDisplayFocus 2 - Cuando el puntero del ratn abandona al objeto : killDisplayFocus 3 - Cuando se le ha hecho click o enter o recibe foco por TAB, SHIFT+TAB. Entonces debe recortarse el cdigo de la clase padre ( XbpGetController ) e implementar SOLO se cdigo. Todo lo dems se comportar como siempre, excepto EN ESE CASO PARTICULAR TRATADO EN LA SUBCLASE. Hasta aqu, estamos de acuerdo? Espero haber sido de ayuda. Saludos Jose Luis Otermin Alaska Software "Gustavo M. Burgos" <Burmanspm@arnet.com.ar> escribi en el mensaje news:4176d4d4$620c1bf9$105d8@news.alaska-software.com... > Hola jose luis. si probe con la GUI que presentaste, pero no me da bola. a > lo mejor no me exprese bien > el temas es el siguiente > tengo varios xbpget uno es el apellido y nombres que almaceno en una > variable m_nombre := space(30). y cuando hago click en cualquier parte del > xbpget que corresponde el puntero del mouse queda donde ice click y no en > el la primer posicion a las izquierda. con el enter y con el tab lo hace, > pero con el mouse no, > Gracias > > -- > Gustavo M. Burgos > Rivadavia N 278. > Pcia Roque Saenz Pea - Chaco > Argentina > Fijo 03732-420635 > Movil 3732-408559 > Burmanspm@arnet.com.ar | |
Jorge L | Re: foco con xbpget on Thu, 14 Jul 2011 13:35:11 -0300 José, gracias por tu aporte y consideraciones "José Luis Otermin [Alaska Software]" escribió en el mensaje de noticias:2384e797$1e7421f1$10463@news.alaska-software.com... Hola Gustavo, Hay que considerar que el mouse puede posicionarse en cualquier punto porque a partir de ahí se puede marcar, copiar/cortar y pegar. Si, como indicas, el mouse habilitara el foco al hacer click (izquierdo), no habría forma de marcar un trozo de texto. La otra posibilidad, es que el sobrevuelo del puntero habilite el foco. Eso significaría que un simple movimiento del ratón provocaría el cambio de foco y las bendiciones del usuario que tipea los datos. Para obtener lo que buscas (más allá de su conveniencia), se hace práctico usar la clase XbpGetC.prg ( XbpGetController() ). ¿Qué puede hacerse? Usar herencia y crear una nueva clase de controlador de Gets. Por ejemplo: CLASS XbpGetNewController FROM XbpGetController EXPORTED: METHOD setDisplayFocus window obtains display focus METHOD killDisplayFocus window looses display focus METHOD setInputFocus window obtains input focus ENDCLASS En este caso conviene preguntarse qué acción deseo que el objeto realice para el caso del foco: 1 - Cuando el puntero del ratón pasa por encima: setDisplayFocus 2 - Cuando el puntero del ratón abandona al objeto : killDisplayFocus 3 - Cuando se le ha hecho click o enter o recibe foco por TAB, SHIFT+TAB. Entonces debe recortarse el código de la clase padre ( XbpGetController ) e implementar SOLO ése código. Todo lo demás se comportará como siempre, excepto EN ESE CASO PARTICULAR TRATADO EN LA SUBCLASE. Hasta aquí, ¿estamos de acuerdo? Espero haber sido de ayuda. Saludos Jose Luis Otermin Alaska Software "Gustavo M. Burgos" <Burmanspm@arnet.com.ar> escribió en el mensaje news:4176d4d4$620c1bf9$105d8@news.alaska-software.com... > Hola jose luis. si probe con la GUI que presentaste, pero no me da bola. a > lo mejor no me exprese bien > el temas es el siguiente > tengo varios xbpget uno es el apellido y nombres que almaceno en una > variable m_nombre := space(30). y cuando hago click en cualquier parte del > xbpget que corresponde el puntero del mouse queda donde ice click y no en > el la primer posicion a las izquierda. con el enter y con el tab lo hace, > pero con el mouse no, > Gracias > > -- > Gustavo M. Burgos > Rivadavia N° 278. > Pcia Roque Saenz Peña - Chaco > Argentina > Fijo 03732-420635 > Movil 3732-408559 > Burmanspm@arnet.com.ar | |
J.A. Diego Kerejeta | Re: foco con xbpget on Thu, 14 Jul 2011 19:34:00 +0200 Hola Gustavo: Creo que puede ser suficiente con modificar un poco el método lbUp(). Prueba con el siguiente código: ************************** CLASS MyXbpGet FROM XbpGet ************************** EXPORTED: INLINE METHOD lbUp( aPos ) ************************** LOCAL aStartEnd ::XbpSle:lbUp( aPos ) IF ::get:type == "L" ::home() ELSE aStartEnd:= ::queryMarked() IF aStartEnd[ 1 ] = aStartEnd[ 2 ] ::home() ELSE ::Get:Pos := aStartEnd[ 2 ] ENDIF ENDIF RETURN self ENDCLASS ************************** CLASS MyXbpSle FROM XbpSle ************************** EXPORTED: INLINE METHOD lbUp( aPos ) ************************** LOCAL aStartEnd ::XbpSle:lbUp( aPos ) aStartEnd:= ::queryMarked() IF aStartEnd[ 2 ] = aStartEnd[ 1 ] .AND. aStartEnd[ 1 ] != 1 ::setMarked( { 1, 1 } ) ENDIF RETURN self ENDCLASS Saludos. Diego | |
Jos Luis Otermin [Alaska Software] | Re: foco con xbpget on Thu, 14 Jul 2011 19:22:52 -0300 Kaixo Diego! Tanto tiempo Esta es una solucin creativa y muy interesante. Gracias por tu aporte. Agur bero bat Jos Luis Otermin Alaska Software "J.A. Diego Kerejeta" <diegokerejeta@euskalnet.net> escribi en el mensaje news:2f669d50$1d11f29b$10937@news.alaska-software.com... > Hola Gustavo: > > Creo que puede ser suficiente con modificar un poco el mtodo lbUp(). > Prueba > con el siguiente cdigo: > > ************************** > CLASS MyXbpGet FROM XbpGet > ************************** > EXPORTED: > INLINE METHOD lbUp( aPos ) > ************************** > LOCAL aStartEnd > > ::XbpSle:lbUp( aPos ) > > IF ::get:type == "L" > ::home() > ELSE > aStartEnd:= ::queryMarked() > > IF aStartEnd[ 1 ] = aStartEnd[ 2 ] > ::home() > ELSE > ::Get:Pos := aStartEnd[ 2 ] > ENDIF > ENDIF > RETURN self > ENDCLASS > > ************************** > CLASS MyXbpSle FROM XbpSle > ************************** > EXPORTED: > INLINE METHOD lbUp( aPos ) > ************************** > LOCAL aStartEnd > > ::XbpSle:lbUp( aPos ) > > aStartEnd:= ::queryMarked() > > IF aStartEnd[ 2 ] = aStartEnd[ 1 ] .AND. aStartEnd[ 1 ] != 1 > ::setMarked( { 1, 1 } ) > ENDIF > RETURN self > ENDCLASS > > Saludos. Diego > | |
J.A. Diego Kerejeta | Re: foco con xbpget on Mon, 18 Jul 2011 20:13:27 +0200 > Agur bero bat Baita zuri ere |