Spanish ScaleAll no responde a uno de los resultados solicitados.

ngr888

Member
Hola de nuevo.

Tengo mi programa casi terminado. Sólo falta pulir un poco su aspecto.
Para ello, he recurrido a un script en la ventana Código_General.

No entiendo por qué una de las muchas etiquetas no responde a lo solicitado (sólo una).
En el Designer, los anclajes y demás parámetros de posición son iguales que los del resto de etiquetas que sí responden.

B4X:
'All variants script
AutoScaleAll

Label1.HorizontalCenter = 50%x
lblN1.HorizontalCenter = 50%x
lblN2.HorizontalCenter = 50%x
lblN3.HorizontalCenter = 50%x
lblSalida.HorizontalCenter = 50%x

btnN3.HorizontalCenter = 50%x
btnN2.Right = btnN3.Left - 4%x
btnN1.Right = btnN2.Left - 4%x
btnN4.Left = btnN3.Right + 4%x
btnN5.Left = btnN4.Right + 4%x

btnSalida.HorizontalCenter = 50%x
btnOtra.Right = btnSalida.Left - 2%x
btnFin.Left = btnSalida.Right + 2%x

' 50%x - 44 pixels
lblPartida.HorizontalCenter = 50%x – 44dip

' ******   ¡NO ME FUNCIONA!  (?)  ********
lblNBase.HorizontalCenter = 50%x

Esa etiqueta no responde al script aún cambiando otras opciones: lblNBase.Left = lblXXX.Right; 50%x - 44dip; y otras cosas.

¿Qué estoy haciendo mal? ¿Alguna idea?

Gracias.
 

josejad

Expert
Licensed User
Longtime User
¿Qué estoy haciendo mal? ¿Alguna idea?
Ya te lo dije en otro post, te lo repito en este, y te lo diría en otro pero ya te han contestado…

Haznos más fácil ayudarte. La mejor forma siempre es crear un pequeño programa que reproduzca el error y subirlo, así la gente puede probar… de otra forma, o hay que imaginar o hay que hacer un proyecto, recrear tus layouts y probar… haz la prueba la próxima vez y verás cómo recibes más y mejores respuestas.

En este caso solo tendrías que copiar tu layout a un proyecto y subirlo. El código parece estar bien, pero no sabemos cómo es tu layout. ¿Sabes que HorizontalCenter no se refiere a la pantalla, sino a la vista en la que está el elemento (Parent)? Por ejemplo, si ese label lo tienes dentro de un panel, 50%x se referirá a la mitad de ese panel, no de la pantalla
 
Last edited:

ngr888

Member
La mejor forma siempre es crear un pequeño programa que reproduzca el error y subirlo
Hola, tomo nota.
Escribí ese post hace unas semanas. Se trataba solamente de una prueba.
Desistí y eliminé el programa. Ya no cuento con nada de ese código para subir.
En las siguientes pruebas, algo más complejas me limito a poner el diseñador de modo que coincida con el dispositivo conectado. Renunciando al uso de Script.
Gracias de todos modos. Un saludo.
 

edgar_ortiz

Active Member
Licensed User
Longtime User
me limito a poner el diseñador de modo que coincida con el dispositivo conectado
En mi opinión, olvídate del "dispositivo conectado"... utiliza el "diseñador" en la forma mas básica utilizando los "anchors Horizontal y Vertical" y si quieres se mas detallista utiliza el "Script".

Saludos,

Edgar
 

ngr888

Member
En mi opinión, olvídate del "dispositivo conectado"... utiliza el "diseñador" en la forma mas básica utilizando los "anchors Horizontal y Vertical" y si quieres se mas detallista utiliza el "Script".
Lo de "dispositivo conectado" lo hago para ver como va quedando el aspecto. Puede que, como me indica, no sea necesario si utilizo los anclajes; cosa que me funciona bien si los views los sitúo pegados unos a otros o a los bordes del layout o panel.

En cuanto a usar script entiendo que es lo más aconsejable, pero tengo algunas dificultades.

Por ejemplo: centrar un solo view por línea es muy sencillo, 50%x
Centrar tres o un número impar, también: pongo al 50% el central, a los de la izquierda voy restando un porcentaje de separación; a las de la derecha les sumo ese porcentaje.
Con un número par tendría que determinar el "width" del dispositivo, restar los anchos de cada view más los espacios de separación, contemplar los márgenes izquierdo y derecho, repartir... demasiado tiempo para pequeños programas de prueba. Lo haría para una aplicación ya definitiva y testeada.

De momento probaré más con los anclajes, tal como me sugiere. Cambiando también el "grid" para un posicionado más fino.

Si progreso, más adelante, atacaría la posibilidad de dos diseños, uno para móvil y otro para tablet. Pero eso todavía lo tengo muy lejano.

Gracias.
 

josejad

Expert
Licensed User
Longtime User
Centrar tres o un número impar

 
Top