Tamaño de texto en control que se desajusta al traducir - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: General (https://gambas-es.org/forum-4.html) +--- Tema: Tamaño de texto en control que se desajusta al traducir (/thread-1048.html) |
Tamaño de texto en control que se desajusta al traducir - Shell - 27-09-2022 Buenas!. Es normal, la palabra puede ser más corta en inglés y luego en español es más larga. Ejemplo: ¿ Hay una forma sencilla de solucionar este problema ?. ¿ Y si el proyecto tiene traducción para varios idiomas ?. ¿ Expandimos manualmente cada uno de los controles que produzca esto ?. No me he fijado bien si se produce este efecto. Con la propiedad Autoresize. Creo que no suelo usarla mucho. Por algún motivo será. El texto hice que salga mal a drede. Su propiedad AutoResize está a False. Y en este caso a True y se compara. Como se expande el botón para que su contenido, que es un texto se vea completo. Eso si, el botón está descentrado. ¿ Mejoras ?. Saludos RE: Tamaño de texto en control que se desajusta al traducir - Shell - 27-09-2022 He añadido un observador al boton1 para saber cuando cambia de tamaño. Tiene su propiedad AutoResize a True. Lo cierto es que no dice nada. Código: Private observador1 As Observer ¿ Es que su propiedad Autoresize a True no hace que entre en funcionamiento el método Resize del botón ?. Saludos RE: Tamaño de texto en control que se desajusta al traducir - vuott - 27-09-2022 ...y de esta manera ? Código: Private Button1 As Button RE: Tamaño de texto en control que se desajusta al traducir - cogier - 27-09-2022 Aquí está mi versión del código de Vuott. Código: HBox1 As HBox RE: Tamaño de texto en control que se desajusta al traducir - alberto-moyano - 27-09-2022 Hola, en una oportunidad tuve un problema parecido y lo resolví con diseño en el formulario, no sé si te servirá. Trabajé los botones contenidos en cajas con tensores. En mi caso, el caption cambiaba según ciertas condiciones y entonces el texto a veces era corto y en otras largo. Por supuesto habilitando el autoresize en true Saludos RE: Tamaño de texto en control que se desajusta al traducir - tincho - 27-09-2022 (27-09-2022, 14:22)Shell escribió: ¿ Hay una forma sencilla de solucionar este problema ? Si, .Autoresize = True Pero tienes que usas contenedores y "springs" como te indico Alberto. Pero si tienes que crear los controles por código o tienes que "estirar" un gruop de controles para que tengna el mismo tamaño a veces es util calcular el ancho antes de crear los controles o para alterar controles existentes. En el formulario: Código: .W = TextWidth(sText, Me.Font.Name, Me.Font.Size) + 7 Funcion: Código: '' Returns the value in pixels of a text string, regarding the typography RE: Tamaño de texto en control que se desajusta al traducir - Shell - 27-09-2022 (27-09-2022, 15:39)vuott escribió: ...y de esta manera ? No es muy distinto a solo aplicar la propiedad AutoResize a True y decirle la localización inicial al botón. En este caso lo haces por código. Con esto quiero decir que no parece necesario esta parte. Código: 'Dim c As Short Ya que la propia propiedad Autoresize = True logra el mismo efecto. Prueba. Cogier: Muy detallado. Alberto: Intenté usar un contenedor pero no salió a la primera. Ya veo que a tí si te funcionó. Tincho: Calcular antes el tamaño según el texto y luego aplicar al tamaño del control, junto con el uso de contenedores y "muelles", parece la más adecuada. Gracias a todos. Saludos RE: Tamaño de texto en control que se desajusta al traducir - vuott - 27-09-2022 (27-09-2022, 20:46)Shell escribió: Ya que la propia propiedad Autoresize = True logra el mismo efecto.Sì, en efecto. ...y no es mejor ? Màs breve, màs corto este modo ? RE: Tamaño de texto en control que se desajusta al traducir - Shell - 28-09-2022 (27-09-2022, 22:31)vuott escribió: ...y no es mejor ? Màs breve, corto aquel modo ? Ahora entiendo. No había llegado a esa conclusión. Demuestras que los dos hacen lo mismo pero de distinta manera. En ese caso, si del código del FormLoad haces que la propiedad Autoresize del Botón1 este a False. Ahora ejecuta el evento Click() del botón se ve que se ajusta, pero es muy justo no hay unos bordes por el texto, está muy cerca a los lados del botón, tanto el izquierdo como su derecho. Habría que añadirle manualmente ademas a lo que de, un tamaño a ojo. Diría que los dos códigos cumplen su función. Si lo haces por código, tienes que añadirle la localización del componente, si o si. La propiedad AutoResize es más cómoda en este caso. Ya que solo es un botón y con su propiedad AutoResize es suficiente. En cambio si la cosa fuera más compleja, si es más adecuado el segundo método, averiguar el ancho del texto, cambiar el tamaño de su contenedor y añadirle algo más. Esto aplicado a controles como un GridView, mejora mucho el ajuste de las columnas. "Errare Humanun est." Saludos |