Control ValueBox En Gambas3 [Solucionado]


Ir a la página 1, 2  Siguiente

Objetivo: Control ValueBox En Gambas3 [Solucionado]
Saludos amigos, explico el caso:
como ya saben algunos, estoy migrando mis aplicaciones de Gambas2 a Gambas3, en el camino, me he conseguido con ciertos inconvenientes/diferencias, he notado que el control ValueBox es el mas problemático.
enumero algunas de las cosas que he notado:

1.- El Metodo Clear no esta disponible, no se porque.
esto me ha originado infinitos problemas, puesto que lo usaba mucho.
2.- El Evento Change no esta disponible.
Casi imposible trabajar sin este evento.
3.- Cuando el control está en modo DATE, los problemas son mayores, súmenle los dos anteriores y agréguenle, por ejemplo, que la inserción de las fechas es mas limitante que en gambas2 ¿limitantes por que? por ejemplo, yo antes podía insertar una fecha así: dia & "/" & mes & "/" anio, ahora no puedo, me dice que estoy insertando un String y espera una fecha. Esto debido a que solo admite para la inserción el formato MM/DD/YYY, aunque lo muestra de forma correcta de acuerdo a la configuración del sistema, en mi caso DD/MM/YYY, esto me causo unas cuantas rabietas al principio.

Objetivo: Re: Control ValueBox En Gambas3
Citar:
1.- El Metodo Clear no esta disponible, no se porque.

Ese método no ha estado nunca disponible para un valuebox ni en gambas2 ni en gambas3

Citar:
2.- El Evento Change no esta disponible.
Casi imposible trabajar sin este evento.


Bueno... yo no le he usado nunca y llevo cinco años programando en Gambas.

Según el control, utilizo Activate, keyrelease, lostfocus, etc.

Dinos qué quieres hacer con la fecha y verás como hay otras maneras de hacerlo.

Citar:
Cuando el control está en modo DATE, los problemas son mayores, súmenle los dos anteriores y agréguenle, por ejemplo, que la inserción de las fechas es mas limitante que en gambas2 ¿limitantes por que? por ejemplo, yo antes podía insertar una fecha así: dia & "/" & mes & "/" anio, ahora no puedo, me dice que estoy insertando un String y espera una fecha. Esto debido a que solo admite para la inserción el formato MM/DD/YYY, aunque lo muestra de forma correcta de acuerdo a la configuración del sistema, en mi caso DD/MM/YYY, esto me causo unas cuantas rabietas al principio.

Como creo que ya te ha dicho jguardon, no es correcto manipular los datos en base a su visualización en pantall. Hay que utilizarlos en base a su tipo de dato. Si trabajas con fechas, utiliza fechas. La representación en pantalla déjasela al control. Es en realidad más sencillo.
¿Que te pide una fecha? utiliza la función date(anio, mes,dia) y ya la tienes...

Suerte.

Perfil MP  
Objetivo: Re: Control ValueBox En Gambas3
shordi escribió: [Ver mensaje]

Ese método no ha estado nunca disponible para un valuebox ni en gambas2 ni en gambas3


shordi, en gambas2 estaba disponible, la aplicacion que estoy migrando lo tenia, y mucho, por eso he tenido tantos problemas, por los momentos, lo he resuelto así: ValueBox.Clear ==> ValueBox.Value=""

Con la fecha ya he resuleto, pero no como me sugeriste, voy a hacer lo que dices, es una solucion mas inteligente a la que yo me usé.
Y el Evento Change, pues ya veré que resuelvo, pero es uno de los eventos que mas utilizo.

Objetivo: Re: Control ValueBox En Gambas3
shordi escribió: [Ver mensaje]

Ese método no ha estado nunca disponible para un valuebox ni en gambas2 ni en gambas3


Oops, shordi siento decirte que en gambas2 sí estaba disponible [1]. Pero claro, es que entonces el valuebox, provenía del control TextBox y ahora no.

También el evento change estaba antes disponible, pero no ahora. Yo también lo echo de menos, así que se lo he preguntado a Benoit, a ver qué dice...

Respecto al método clear, ahora no disponible, hay una forma de limpiar el contenido, que es asignando el valor 0. Cuando el nuevo valuebox tiene un valor nulo, éste no muestra su contenido.

En fin, no me gusta mucho la implementación, sobre todo cuando está en modo Time, y saca esa lista de horas tan fea. Ajo y agua, como dicen en mi pueblo.

Saludos


[1].- http://gambasdoc.org/help/comp/gb.form/valuebox?es&v2

Perfil MP  
Objetivo: Re: Control ValueBox En Gambas3
Citar:
1.- El Metodo Clear no esta disponible, no se porque.
esto me ha originado infinitos problemas, puesto que lo usaba mucho.
2.- El Evento Change no esta disponible.
Casi imposible trabajar sin este evento.


Datobinario, estas equivocado yo llevo desde hace tiempo usando el evento change para las textbox evitando letras y numeros, tambien el clear para borrar registros tanto de textbox como de tableview nose si es que tienes un gambas 3 malo estas haciendo las cosas mal.

Objetivo: Re: Control ValueBox En Gambas3
jousseph

Es la segunda vez que tengo que decirte que leas antes de postear. No estamos hablando de textbox, sino de valuebox.

¿Tanto cuesta leer y comprender lo que se lee antes de quedar en ridículo?

Por favor, LEE

Saludos

Perfil MP  
Objetivo: Re: Control ValueBox En Gambas3
Buenas noticias

He consultado a Benoit por qué el ValueBox no trae el evento change y efectivamente le ha surgido la duda a él también. Probablemente lo implemente en próximas versiones, conociéndole puede que en la próxima revisión lo tenga ya.

Mientras, nos ha dado una solución transitoria para salir del paso. Os explico:

Sólo después de haber asignado el tipo de control (numero, fecha, hora, etc) podemos crear un observador en el primer hijo interno del control, de manera que podamos cazar su evento change:

hObs = New Observer(MyValueBox.Children[0]) As "MyValueBox"

Public Sub MyValueBox_Change()

' codigo del evento
End


Y ya está. Espero que pronto lo veamos implementado nativamente. Gracias a datobinario por ponerlo de manifiesto.

Saludos

Perfil MP  
Objetivo: Re: Control ValueBox En Gambas3
Cierto, en gambas2 está. El alemán del pijo como que trae loco.

Perfil MP  
Objetivo: Re: Control ValueBox En Gambas3
hObs = New Observer(MyValueBox.Children[0]) As "MyValueBox"

Public Sub MyValueBox_Change()

' codigo del evento
End


Como el ejemplo de Guardon utiliza MyValueBox 2 veces, estoy un pelo confundido, a ver si pueden ayudarme un poco mas, este era mi código en gambas2:

Public Sub libras_Change()
If libras.Value <> "" Then
peso.Text = libras.Value * 0.45
Else
peso.Text = 0
Endif
End


'libras' es un control ValueBox, y 'peso' es un control TexBox.

Objetivo: Re: Control ValueBox En Gambas3
libras es un valuebox numérico. su propiedad .value es un númro. Luego

If libras.Value <> "" Then

No tiene sentido, por cuneot lo comparas con una cadena "".

Lo mismo más abajo:
Peso.text es una cadena. Libras.Value es un número.No es correcto mezclar valores de distinto tipo.
¿Por qué te funcionaba (si es que lo hacía)? Porque el compilador lleva sus propias rutinas de conversión que flexibilizan el código, pero eso:

a) Sigue sin ser correcto, aunque de momento pueda funcionar y
b) En algún momento en los que el lenguaje evolucione hacia maneras más estrictas (y basta con que te actualicen la manera en la que manejan los datos los eventos de un control ) para que te deje de funcionar.

A parte de eso, la lógica que sigues es correcta. Tan sólo un consejo: Indenta tu código. El Empezar las líneas en la misma columna hace el código ilegible.
En lugar de

Public Sub libras_Change()
If libras.Value <> "" Then
peso.Text = libras.Value * 0.45
Else
peso.Text = 0
Endif
End


Public Sub libras_Change()
If libras.Value <> "" Then
peso.Text = libras.Value * 0.45
Else
peso.Text = 0
Endif
End


Saludos.

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 1.0317s (PHP: -91% SQL: 191%)
Consultas SQL: 45 - Debug off - GZIP Activado