https://foro.gambas-es.org/viewtopic.php?f=1&t=2510
-----------------------------------
Shell
Martes, 24 Julio 2012, 13:24

Problema Con Hbox.
-----------------------------------
Hola Comunidad!.

Haciendo los ejemplos de números aleatorios para el blog, el segundo ejemplo con el dado de poker 
me  encontré un problema con el componente Hbox. Puede que esto sea normal al cambiar de versión
de Linux o entre versiones de Gambas3.

La manera como suelo hacerlo es aquí en el trabajo con Ubuntu 11.04 y o bien Gambas2 2.24
y hasta ayer Gambas3 3.2. Y en casa Debian Squeeze 6.4 con Gambas 2.24 y Gambas 3.2.1

En este componente Hbox voy añadiendo las caras de los dados de poker y van quedando alineadas.

Si os pasáis por el blog podéis verlo y comprobar que hace en vuestro equipo.

http://gambas-basico.blogspot.com.es/2012/07/numeros-aleatoriosejemplo-2.html

Los dados cabrían dentro del componente Hbox.Cuando lo llevo a casa y ejecuto el programa
ya se sale un dado, en vez de tener los 5 dados, me queda el ultimo partido.Retoco y ajusto
el componente sin mayor problema.

Mi duda es:

Si hago una aplicación pensando que a mi en un sistema me sale bien y luego al usuario le
sale mal el ultimo dado,¿ que sentido tendría cuando cree el binario ?.

Al volver a traerlo al trabajo de casa al curro, igual. Siempre hay una pequeña variación.

Lo normal seria si se que cada dado mide 67x67,doy a la propiedad de ancho del Hbox 67 x 5 dados.

¿ Varían estas cosas de un equipo a otro. ? .Debo suponer que a pesar de la distro de Linux que utilice
 el usuario mi aplicación debería verse bien en todas. Siendo Gnome o KDE.

¿ Es por el cambio de distro de Linux ?.
¿ Es por el cambio de versión de Gambas3 ?.
¿ Que influye cuando yo hago una aplicación en una distro de Linux con un Gambas3 para que luego algún componente como Hbox no estén todos los dados ?.

El proyecto original era de Gambas2, pero lo he ido modificando en Gambas3.

Es normal que cuando convertimos un proyecto de Gambas2 a Gambas3 ocurra alguna variación en el formulario.
Pero de Gambas3 a otra versión de este.  :???: 

Esto es lo que me preocupa,. ¿ Como se que mi usuario va tener la aplicación como yo quiero que salga ?. Como yo la veo en mi ordenador.
Puede que diferentes iconos, pero centrada, sin problemas de ajuste.

Saludos.


-----------------------------------
fabianfv
Martes, 24 Julio 2012, 20:50

Re: Problema Con Hbox.
-----------------------------------
Hola Shell.

[quote user="Shell" post="14292"]

En este componente Hbox voy añadiendo las caras de los dados de poker y van quedando alineadas.

Los dados cabrían dentro del componente Hbox.Cuando lo llevo a casa y ejecuto el programa
ya se sale un dado, en vez de tener los 5 dados, me queda el ultimo partido.Retoco y ajusto
el componente sin mayor problema.

Mi duda es:

Si hago una aplicación pensando que a mi en un sistema me sale bien y luego al usuario le
sale mal el ultimo dado,¿ que sentido tendría cuando cree el binario ?.
[/quote]
Esa no es la pregunta correcta, es necesario comprender el origen del problema.

[quote user="Shell" post="14292"]
Al volver a traerlo al trabajo de casa al curro, igual. Siempre hay una pequeña variación.

Lo normal seria si se que cada dado mide 67x67,doy a la propiedad de ancho del Hbox 67 x 5 dados.

¿ Varían estas cosas de un equipo a otro. ? .Debo suponer que a pesar de la distro de Linux que utilice
 el usuario mi aplicación debería verse bien en todas. Siendo Gnome o KDE.
[/quote]
Que el equipo sea diferente no es parte del problema. Las diferentes distribuciones tampoco para este caso.

QT y GTK+ son dos toolkits muy diferentes y lo que hace Gambas es proveer wrappers (envoltorios) que presentan una interfaz bastante homogenea (gb.qt y gb.gtk) que lima esas diferencias. Pero esos wrappers no son perfectos, históricamente han tenido algunos problemas, especialmente gb.gtk y algunas inconsistencias entre ellos.

Entonces, salvar las diferencias originadas en la diversidad de toolkits gráficos, entornos de escritorio y distribuciones es un problema de una magnitud para nada despreciable. Implica que tengas que virtualizar las mismas distribuciones y entornos de escritorio que pudieran usar los usuarios de tu aplicación y usarlas para probar la instalación y desempeño de tus programas.

Si tu anhelo es que tu programa se pueda distribuir universalmente, la diversidad de opciones se vuelve inmanejable y es necesario que involucres a los usuarios en el testing (QA). Esto generalmente no es un problema porque es lo habitual en el mundo del software libre.

[quote user="Shell" post="14292"]
¿ Es por el cambio de distro de Linux ?.
¿ Es por el cambio de versión de Gambas3 ?.
¿ Que influye cuando yo hago una aplicación en una distro de Linux con un Gambas3 para que luego algún componente como Hbox no estén todos los dados ?.
[/quote]
Hay algunas diferencias en este aspecto entre Gambas2 y Gambas3.

[quote user="Shell" post="14292"]
Es normal que cuando convertimos un proyecto de Gambas2 a Gambas3 ocurra alguna variación en el formulario.
Pero de Gambas3 a otra versión de este.  :???: 
[/quote]
También puede ser, depende de los cambios que se hayan hecho. Si vas a pasar de una versión menor de Gambas3.x a otra, necesariamente debes estar al tanto de los cambios que se realizaron y cómo ellos pueden afectar el comportamiento anterior.

[quote user="Shell" post="14292"]
Esto es lo que me preocupa,. ¿ Como se que mi usuario va tener la aplicación como yo quiero que salga ?. Como yo la veo en mi ordenador.
Puede que diferentes iconos, pero centrada, sin problemas de ajuste.
[/quote]
Tienes que crear una pequeña infraestructura de pruebas virtualizando las principales distribuciones y entornos de escritorio en los que quieres que sea posible correr tu programa (en los que jamás debes instalar Gambas) y probar tu programa.

Ahora respecto al problema puntual que se te presenta, considerando que siempre puede haber diferencias entre la representación gráfica que crea gtk y la que crea QT, no deberías intentar controlar "manualmente" ningún aspecto gráfico, más aún si utilizas controles de posicionamiento porque podrías encontrar comportamientos muy extraños.

Como pauta, deberías elegir entre manejar todo el "layout" y el dimensionamiento de los controles manualmente o de forma automática, pero no mezclar ambas posibilidades.

Puntualmente, deberías probar si tu problema se soluciona haciendo que el control HBox se redimensione automáticamente, si no deberías controlar el posicionamiento y tamaño de los controles "manualmente".

Saludos.


-----------------------------------
Shell
Miercoles, 25 Julio 2012, 00:41

Re: Problema Con Hbox.
-----------------------------------
Hola Fabian.

Después de escribir el mensaje se fue al traste  :cry:  :cry: 
Se quedo pillado.

Bueno, no pasa nada. Entendí lo importante de tu mensaje, que debo hacer si quiero que mis programas 
funcionen en otras distros.

Creo que el problema principal esta en escalar el formulario y no añadí todo el espacio que le corresponde
al Hbox.Si use espacio entre los objetos contenidos en el contenedor tengo que contar con este.

Ejemplo.

Gambas2 con Scale a False.Dejo el tamaño del Hbox a 5x64=320 y "no añado espacio", cuando este debería tenerlo entre
los objetos contenidos de Hbox.Era de 10 entre dados.

 [img]http://foro.gambas-es.org/files/images/768/gambas2scale_false_1343172788_614956.png[/img] 

Ahora activo Scale y dejo el mismo tamaño de ancho del Hbox.

 [img]http://foro.gambas-es.org/files/images/768/gambas2scaletrue_1343172827_482835.png[/img] 

Si haces click en las imágenes veras que una es mas grande que la otra.La que tiene scale a true, la segunda.
El tamaño del ancho del formulario es mayor.Debió de aumentar automáticamente tanto el ancho del Hbox como el del
formulario. Y ademas, el aspecto del dado no es el mismo.

Hay que tener cuidado con la escala y las medidas de los componentes.

Gracias.

Saludos.


-----------------------------------
fabianfv
Miercoles, 25 Julio 2012, 16:16

Re: Problema Con Hbox.
-----------------------------------
[quote user="Shell" post="14296"]
Hola Fabian.
Después de escribir el mensaje se fue al traste  :cry:  :cry: 
Se quedo pillado.
[/quote]
Te agradecería que escribieras en español neutro, no entiendo qué significa lo que dices.

[quote user="Shell" post="14296"]
Creo que el problema principal esta en escalar el formulario y no añadí todo el espacio que le corresponde
al Hbox. Si use espacio entre los objetos contenidos en el contenedor tengo que contar con este.
[/quote]
Si estableces la propiedad "Autoresize" del HBox a TRUE te liberas de controlar su tamaño "manualmente" y ese problema no se presenta.

[quote user="Shell" post="14296"]
Gambas2 con Scale a False (...) Debió de aumentar automáticamente tanto el ancho del Hbox como el del formulario. Y ademas, el aspecto del dado no es el mismo.

Hay que tener cuidado con la escala y las medidas de los componentes.
[/quote]
Yo ya no uso Gambas2 hace mucho tiempo, pero creo que ello tenía que ver con que el formulario y los controles escalaran su tamaño según el tamaño de la fuente. Fíjate si puedes evitar usar esa característica, creo que ya no existe en la versión actual de Gambas3 (corrígeme si me equivoco).

Sí, en realidad también hay que tener otras precauciones. Por ejemplo, si tienes controles PictureBox que deben ir alineados en un contenedor (Gambas 3.2.90):

[list=1]
[*]Debes establecer Spacing = TRUE en el contenedor, pero cuidado: el espaciado es proporcional al tamaño de los controles.

[*]Debes establecer Autoresize = TRUE en el contenedor, para que al añadirle más controles no tengas que preocuparte de que no se vean porque el tamaño del contenedor quedó más pequeño.

[*]Si estableces manualmente el tamaño de los controles PictureBox y por accidente modificas el tamaño de uno de ellos (algo que es muy fácil que ocurra si acostumbras a manipular el tamaño de los controles con el ratón), ese control no quedará correctamente espaciado con respecto a los demás. Una solución a medias es establecer las propiedades comunes en el primer control PictureBox y luego copiarlo y pegarlo tantas veces como sea necesario, pero ello en realidad no te libra del problema. Una mejor solución sería escribir un método que cree los controles PictureBox y establezca sus propiedades a partir de los argumentos que recibe (aquellas cuyos valores deben coincidir).

[*]Establecer Autoresize = TRUE en los controles PictureBox también modificaría el espaciado entre los controles y es innecesario

[*]Establecer Stretch = TRUE en los controles PictureBox no debería tener ningún efecto si la imagen y el control tienen el mismo tamaño, pero sí lo hace (esto parece un bug).
[/list]

Saludos.


-----------------------------------
Shell
Jueves, 26 Julio 2012, 00:15

Re: Problema Con Hbox.
-----------------------------------
Hola Fabian.

Gracias por los buenos consejos.Anotare este mensaje.

Creo que el problema que ocurrió con el mensaje debió ser labor de mantenimiento.
Mi respuesta se perdió, después de toda la molestia que te tomaste en contestar
y yo en responder.

Pillado es como congelado, trabado.Pero tiene mas usos.

En el momento que te envié la respuesta,mostraba en la barra inferior del
navegador una dirección y de ahí no continuaba hacia ningún lado.

Son cosas que ocurren.Lo importante es entenderse. ;-)

Saludos.


