Comentarios y consejos de desarrollo de aplicaciones sobre la interfaz gráfica de usuario

La Interfaz de Usuario

Copyright © 2000 Ernesto De Spirito

NOTA: Ningún usuario fue maltratado para escribir este artículo. ;)

Este artículo fue primero publicado en el Boletín para Desarrolladores de Software

Boletín Pascal. Newsletter gratuito para programadores Delphi (y Kylix) con artículos, noticias, trucos, componentes y enlaces a nuevo contenido Delphi en la red.

Índice

Help & Manual authoring tool

Introducción

Al pensar en la interfaz de usuario la mayoría de los desarrolladores de software piensan en ventanas, menús, diálogos, gráficos, colores, etc., y se olvidan el componente principal del interfaz de usuario: ¡el usuario! Por alguna razón tendemos a pensar en (nuestro concepto de) la belleza o la presentación de nuestra aplicación antes que el propósito verdadero de la interfaz: facilitar la interacción entre el usuario y la aplicación, o hacerle fácil al usuario "hablar" con la aplicación, para decirlo en castellano simple.

Niveles de usuarios

¿Quién es este personaje de pesadilla que nos culpa por cada tonta equivocación que comete con nuestra aplicación? ;) Trataremos de tipificar a los usuarios en tres grupos según su nivel de conocimientos y experiencia.

Principiantes

Esta es una forma elegante de referirse a aquellos usuarios que muy probablemente serán principiantes toda su vida. :-)

No saben como cortar, copiar y pegar y muy probablemente son incapaces de copiar un archivo, por más veces que se los explique, así que si su aplicación requiere de estas habilidades, entonces no es para principiantes! No es que hayan llegado tarde cuando Dios estaba repartiendo cerebros, sino que simplemente no quieren aprender.

No les gustan las computadoras y probablemente nunca les gustarán. Las usan porque tiene que hacerlo o porque un buen vendedor les ha dicho que son fáciles de usar!

Le tienen pánico a la computadora. No porque piensen la computadora se los comerá, sino que se comerá sus archivos (y saben que será su culpa). Tienen demasiado miedo de cometer errores, así que es muy importante que su aplicación les de la confianza que no cometerán graves equivocaciones inadvertidamente. Es contraproducente preguntarle al usuario a cada rato "¿Está seguro?" porque por un lado alimenta el sentimiento de incertidumbre en el usuario (como si todo lo que hace hace puede ser potencialmente un desastre) y por otro lado genera respuestas automatizadas (siempre presionar "Sí" o "Aceptar" sin leer las preguntas), pero bueno, este es un tema del que hablaremos luego.

Tendrán problemas instalando su aplicación (por empezar no entienden qué es una instalación y por qué deben realizarla), y seguramente escogerán la opción "típica" al instalar su aplicación porque es la opción predeterminada. Ellos aceptan todas las opciones predeterminadas y muy probablemente nunca las cambiarán, así que asegúrese de establecerlas para el usuario "típico".

Estos usuarios son la mayoría, así que esta es una razón importante para programar para ellos!

Intermedios

Estos son los que eligen "Completa" cuando instalan una aplicación. Poseen más conocimientos que los principiantes, así que puede tener una conversación civilizada con ellos. ;)

Saben cortar, copiar y pegar, y también saben como copiar archivos por ejemplo. No espere mucho más, excepto que por lo general están un poco más dispuestos a aprender.

No son la mayoría, pero son muy importantes porque conseguirá probablemente la mejor retroalimentación de este grupo. Han sido principiantes no hace mucho tiempo atrás y saben cuán duro es aprender, y dado que realmente han aprendido algo es que le podrán comunicar mejor sus necesidades y las necesidades de los principiantes. Otra razón por la que este grupo es importante es que pueden recomendar su aplicación y pasarla a otros (incluyendo principiantes que de otra manera quizás no sabrían su aplicación existe), ayudando así a diseminar el uso de su aplicación.

Avanzados

Como se podrá imaginar, éstos son los que escogen la opción "Avanzada" al instalar una aplicación, y puede apostar a que muchos cambiarán por lo menos la carpeta destino.

Saben realizar todas las tareas operativas básicas (como buscar archivos, crear accesos directos, configurar la impresora, etc.) y es muy probable que demanden mucho de su aplicación.

Quieren sentir que tienen el poder y que están en control de la aplicación, y no al revés, salvo cuando la aplicación es nueva para ellos, sin mencionar cuando la tarea que la aplicación desempeña les es totalmente nueva. Puede apostar con seguridad que en este caso esperarán más guía que los principiantes. Quieren aprender, pero de la manera más fácil posible.

Aunque son la minoría, este grupo es importante porque por lo general están en contacto cercano con principiantes y usuarios intermedios de computadora y normalmente influencian sus elecciones.

Aplicaciones para diferentes grupos de usuarios

¿Ha definido el tipo de usuarios a la que su aplicación está destinada? Comúnmente, las aplicaciones se destinan a principiantes, usuarios avanzados o al público general (léase "todos"). Si su aplicación apunta a un grupo específico, asegúrese de aclarar este hecho para no desilusionar a nadie.

Note que no he mencionado aplicaciones destinadas a principiantes+ intermedios o intermedios+avanzados, o sólo usuarios intermedios. ¿Por qué? Porque principiantes+intermedios son casi todos los usuarios, así que ¿por qué excluir los usuarios avanzados? Los usuarios intermedios solos también excluirían innecesariamente a los usuarios avanzados. La combinación intermedios+avanzados no es considerada porque es muy rara una aplicación que puede ser usada por usuarios intermedios y no por principiantes, así que muy probablemente el caso es que los diseñadores "olvidaron" los principiantes (no pusieron esfuerzo suficiente para hacer la aplicación fácil de usar) o sobreestimaron las habilidades de los usuarios. Por otra parte, si la aplicación es realmente "demasiado avanzada" para principiantes, las chances son que también sea demasiado avanzada para la mayoría de los usuarios intermedios, así que sería más apropiado afirmar que está destinada a usuarios avanzados.

Ok, ahora hablaremos de dejar de las principales características que deberían tener las aplicaciones para los diferentes grupos de usuarios que hemos definido.

Aplicaciones para principiantes

La prioridad de este tipo de aplicaciones es la facilidad de uso por sobre cualquier otra cosa, significando esto que por ejemplo puede (y quizás debe) olvidarse del estándar: ventanas rectangulares, barras de título y de menú, colores estándares, etc. Piense en un reemplazo para el Bloc de Notas por ejemplo (una aplicación que reemplaza el Bloc de Notas que viene con Windows). Los principiantes no saben qué es un menú o qué es una barra de título :-) así que podemos librarnos de ellas, y quizás en vez de una fea ventana con un cuadro de texto blanco podríamos pensar en la imagen de un bloc de notas real (como las páginas de nuestro sitio web) con algunos botones grandes en el margen izquierdo para las operaciones básicas (las pocas que un principiante usaría). La asociación con objetos cotidianos familiares al usuario (como un cuaderno verdadero) es una buena manera de hacer que el usuario se sienta cómodo con su aplicación.

Aplicaciones para usuarios avanzados

Típicamente, éstas son utilidades de sistema, herramientas CAD, etc. y comúnmente proveen mucha funcionalidad, tanta que hasta pueden asustar a un usuario avanzado! :) Tiene que tomar en cuenta que aunque esté tratando con usuarios avanzados de computadora, ellos pueden ser novatos con su aplicación, así que sería sabio proveer algún tipo de guía o algo para hacerles fácil sortear la complejidad de su aplicación.

Cuando diseñe para usuarios avanzados es muy importante seguir el estándar porque lo conocen muy bien y están habituados a él, y por lo tanto encontrarían inaceptable tener que aprender algo nuevo o usar una aplicación "limitante". Los usuarios avanzados quieren tener el poder, quieren características y desempeño.

Aplicaciones para el público general

La mayoría de las aplicaciones son para el público general, siendo los paquetes de oficina por lejos las más populares.

La elaboración de aplicaciones apropiadas para toda clase de usuarios es difícil, es trabajo duro, pero permite a su aplicación de alcanzar la totalidad de su mercado. Lograr una buena combinación de facilidad de uso, poder y flexibilidad es más fácil decir que hacer, pero no es imposible.

Piense en un procesador de textos por ejemplo. Los principiantes pueden usarlo. Todo lo que tienen que saber es la operación básica de teclado (teclas "imprimibles", las flechitas y la tecla Suprimir) y cómo abrir, guardar e imprimir. Los usuarios intermedios encontrarán la mayoría de las cosas que usan muy a mano en las barras de herramientas, y los usuarios avanzados pueden acceder a todo el poder del procesador de textos explorando el menú principal y los menús contextuales, usando atajos de teclado, etc.

Belleza exterior

La interfaz de usuario es a una aplicación más o menos lo que la tapa es a un libro. Tal vez haya escuchado muchas veces la frase "No se debe juzgar a un libro por su tapa". ¿Por qué no? Porque la apariencia exterior no significa nada acerca de la calidad interior, pero la verdad es que la mayoría de la gente le da una gran importancia a la apariencia exterior, así que la interfaz de su aplicación debe ser bonita.

¿Qué es "bonita"? Yo siempre menciono MS Word para Windows como un ejemplo (¡fanáticos de Linux por favor no me maten!). ¿Usa colores? No, todo es el aburrido estándar. ¿Usa gráficos? Excepto por las barras de herramientas y algunas ayudas de menú, no hay gráficos, ni siquiera como ornamentaciones o fondos de formularios. ¿Tiene algo especial? No. Entonces, ¿Qué la hace linda? Tal vez las palabras claves sean "orden" y "prolijidad". Héchele una mirada a todos los cuadros de diálogo. ¿Ve algún elemento (etiqueta, cuadro de texto, etc.) que estaría mejor si se lo moviera un solo pixel en cualquier dirección? ¿Entiende a lo que me refiero?

Como puede ver, el orden y la prolijidad tienen una belleza inherente, así que el orden y la prolijidad debería ser su principal preocupación. Haga a su aplicación bella por sí misma. Es la más fácil, más económica y mejor forma de hacer que una aplicación sea bonita. Después, y sólo después, que haya logrado eso, un poco de "maquillaje" puede resaltar esa belleza así como también puede arruinarla si no tiene buen gusto, así que debe ser muy cuidadoso con esto. Es más el trabajo de un diseñador gráfico que el de un programador...

Elementos visuales de la interfaz de usuario

Pantalla de presentación

La pantalla de presentación (splash screen) se usa para mejorar la velocidad perceptible de la aplicación. En realidad, una aplicación tardará un poquito más en cargarse con una pantalla de presentación que sin ella, pero la pantalla de presentación que aparece rápido le da al usuario la (falsa) sensación que la aplicación comenzó a trabajar rápidamente.

La pantalla de presentación frecuentemente se usa también como un "fastidio" (nag) en muchos programas shareware.

CONSEJO: Provea una indicación visual que su aplicación se está cargando, especialmente si su aplicación tarda mucho en cargar. Bastaría simplemente con una etiqueta parpadeante que dijera "Cargando...", aunque por supuesto puede usar algo más elaborado.

CONSEJO: Integre el "Consejo del día" en la pantalla de presentación, dándole al usuario algo que leer mientras espera que su aplicación se cargue.

CONSEJO: La pantalla de presentación existe por un propósito. Si no la necesita, no la use. Es "grasa".

Consejo del día

Cada día más aplicaciones incluyen el "Consejo del día", también conocido como la ventana "¿Sabía Usted?". Es una forma interesante de enseñar algunas características de su aplicación. Los principiantes y muchos usuarios intermedios puede que nunca desactiven esta ventana, así que más vale que tenga muchos consejos para mostrar. La mayoría de los usuarios intermedios y los avanzados preferirán explorar todos los consejos en la primera sesión y luego desactivarán esta ventana pues la encontrarán irritante.

CONSEJO: Permita el usuario explorar todos los consejos (con botones Anterior - Siguiente).

CONSEJO: Provea una opción para inhabilitar los consejos del día en el mismo diálogo.

CONSEJO: Incluya información significativa en los consejos, no cosas demasiado obvias como "Para abrir un archivo yendo al menú Archivo y seleccionando Abrir". Trate de responder a preguntas frecuentes, ya sean reales o hipotéticas.

CONSEJO: Coloque primero los consejos acerca de la operación básica de su programa. Las cosas lindas o adicionales van al final.

CONSEJO: Si no tiene suficientes consejos para ofrecer, no muestre la ventana "Consejo del día". Es patético.

Asistentes

Los asistentes son buenos para los principiantes o incluso para los usuarios avanzados que pueden no ser expertos en el campo de su aplicación. Normalmente los asistentes se usan para sustituir un cuadro de diálogo complejo y se usan principalmente para instalaciones, configuraciones (de primera vez), y ciertas clases de procesos que requieren alguna entrada de parte del usuario.

La principal ventaja del asistente sobre el cuadro de diálogo es que obliga al usuario a enfocarse en una cosa por vez. Otra ventaja importante es que los asistentes pueden "bifurcar" mostrando diferentes conjuntos de opciones de acuerdo a las que el usuario ha elegido antes. De esta manera, los usuarios no ven lo que no necesitan ver y consiguientemente las cosas se ven más simples.

CONSEJO: Cuando haya espacio (habitualmente), provea alguna pista o ayuda. Por ejemplo, en vez de decir "Ingrese su nombre:" puede escribir "Por favor ingrese su nombre aquí abajo. Por ejemplo 'Homero J. Simpson' (sin las comillas)". Es diferente, ya que brinda a los usuarios mayores precisiones respecto de lo que se espera de ellos.

CONSEJO: Los asistentes hacen las cosas fáciles, pero ir un paso a la vez eventualmente se convierte en algo demasiado engorroso para los usuarios intermedios y avanzados una vez que han aprendido el proceso. Cuando pueda, incluya un botón "Avanzado..." y/o alguna forma de inhabilitar el asistente y presentar un cuadro de diálogo normal en su lugar.

Barra de título

CONSEJO: No use colores en degradé ni ninguna clase de dibujo propio de la barra de título de sus formularios. ¿Por qué? Porque las fuentes y colores que usted elija pueden no coincidir con las que el usuario ha configurado, y su aplicación puede verse "no profesional". Además, tenga cuidado que muchas de las rutinas para pintar la barra de título que están disponibles por ahí, fracasan en realizar bien el trabajo. Algunas producen feos resultados en modos de vídeo de baja profundidad color mientras que otras aparentemente no toman en cuenta el tamaño de los botones (minimizar, maximizar y cerrar), dejando una porción de la barra de título pintada con los colores predeterminados. No queda muy lindo. El estándar es simple, el estándar es lindo, y por sobre todas las cosas, ¡el estándar es estándar!

Barra de menú

No debería escribir una sola línea acerca de la barra de menú, pero después de ver algunas aplicaciones, me siento compelido a decir una palabra: FTFS (Follow The F^@%*&# Standard! Siga el maldito estándar! ;)

CONSEJO: El primer menú debería ser Archivo, Sistema, Mensaje, Trabajo, Tarea o lo que sea la cosa más importante para su aplicación. La última opción de este menú debería ser Salir (y la "S" debería ser el atajo local, i.e. el atajo del elemento una vez que se abrió el menú).

CONSEJO: Debería tener un menú Ayuda con al menos dos elementos: índice de la ayuda (¡o por lo menos aunque sea un archivo léame o algo!) y un cuadro de diálogo "Acerca de".

CONSEJO: Incluya un atajo para todos los elementos del menú principal y para todos los elementos del menú que muy probablemente sean los más frecuentemente usados. Por favor no use las teclas estándares de Windows (como Ctrl+X, Ctrl+C, Ctrl+V, F1, Alt+F4, etc.) para otros propósitos distintos de sus originales (como Cortar, Copiar, Pegar, Ayuda, Cerrar, etc.). No use Ctrl+G (y preferentemente tampoco Ctrl+S) si no es para guardar. Incluya atajos locales para todos los elementos de menú.

CONSEJO: No coloque cien elementos en un menú. Existe un gran invento llamado submenú. ;) Pero por favor tampoco abuse de los submenús. Trate de alcanzar un equilibrio. Generalmente (especialmente para un acceso rápido) es mejor separar un menú en dos antes que usar submenús.

CONSEJO: Como regla práctica, el número máximo de elementos de un menú es uno o dos menos que el número que entren en una pantalla de 640x480 con la configuración estándar de Windows.

Barra de herramientas

CONSEJO: Si su barra de herramientas no tiene muchos elementos, considere el uso de iconos grandes y la posibilidad de incluir etiquetas en los botones puesto que los principiantes no entienden los iconos (ni nada en lo absoluto! ;) o encuentran difícil asociar la imagen con la acción. No quieren ver lindos gráficos; quieren ver algo que puedan entender.

CONSEJO: Provea una "pista" (tool tip = información sobre herramientas) para cada elemento en la barra de herramientas. Para elementos que tienen un atajo de teclado, incluya el atajo en la pista. A los usuarios avanzados les resulta más rápido usar el atajo de teclado si lo recuerdan que hacer clic en el botón con el ratón.

CONSEJO: Haga sus gráficos simples y fáciles de entender.

CONSEJO: Como regla práctica, el número máximo de elementos en la barra de herramientas es el número que entran en una pantalla de 640x480 con la configuración estándar de Windows.

Punteros del ratón

CONSEJO: No use sus propios cursores excepto para significar algo específico de su aplicación. De otro modo, los cursores que usted presenta pueden ser diferentes de los que el usuario está acostumbrado a ver.

CONSEJO: No cambie seguido la forma del cursor, a menos que sea para significar una operación especial (como arrastrar, pintar, etc.). Una excepción a esta regla es para denotar partes donde el usuario puede hacer clic y que no son tan obvias a simple vista (en realidad deberían hacerse obvias por otros medios que cambiar el puntero del ratón, pero a veces es difícil).

Botones

CONSEJO: Una etiqueta de texto es siempre mejor que un gráfico porque es más fácil leer un texto que interpretar el significado de una imagen. Además, una etiqueta de texto hace obvia cuál es el atajo de teclado para el botón.

CONSEJO: Texto y gráficos hacen buena combinación.

CONSEJO: Si hace un botón sólo con un gráfico (no recomendado), al menos tenga la decencia de proveer una pista (información sobre herramienta). Los usuarios agradecidos. ;)

Preguntas Sí/No

Es fácil hacer esta clase de diálogos puesto que Windows provee una API para tal fin (MessageBox), pero aunque permite un rápido desarrollo, debería considerar no usarla y en su lugar diseñar sus propios diálogos en situaciones donde una respuesta correcta pueda significar pérdida de datos o de tiempo.

Por ejemplo, cuando el usuario cierra un formulario muchas aplicaciones preguntan

y normalmente la respuesta es Sí, así que los usuarios de acostumbran a hacer clic en Sí (o a presionar Enter) cada vez que ven estos diálogos, sin leer los mensajes. Sin embargo, hay algunas aplicaciones que invierten la pregunta, por ejemplo

No hay necesidad de decir que tiene consecuencias desastrosas para aquellos que se acostumbraron a hacer clic en Sí para guardar sus cambios. Siempre hacer preguntas donde la respuesta más probable sea Sí no es solución (en realidad, contribuye más al problema).

Decirle a los usuarios que lean los mensaje no tiene sentido. No lo harán. Punto. Pero por lo menos leerán las etiquetas de los botones, así que la solución es etiquetar los botones con algo significativo. Por ejemplo:

 

Interfaces Explorador y Navegador

Algunas aplicaciones MDI y SDI son difíciles de usar para muchos principiantes y usuarios intermedios. Parecen perderse fácilmente en todos los menús y ventanas. Aunque usted no lo crea, a muchos principiantes les cuesta determinar cuál es la ventana que está encima de las demás. Piensan que una aplicación se ha "clavado" cuando escuchan pitidos cada vez que hacen clic sobre cualquier parte de ella... excepto sobre el diálogo que ha aparecido, pero no pueden "verlo" porque increíblemente no distinguen la tridimensionalidad de los objetos de la pantalla.

El problema se puede resolver parcialmente usando una interfaz como la del famoso Explorador de Windows o una como la mayoría de los navegadores de Internet. Tienen en común que presentan al usuario una única ventana (y diálogos ocasionalmente).

En la Interfaz Explorador el usuario puede ver dos paneles: un árbol a la izquierda y una lista o grilla a la derecha. Esta clase de interfaz es muy útil para aplicaciones de bases de datos. El árbol se usa generalmente como un menú, por ejemplo:

Si el usuario por ejemplo hace clic en "Clientes", vería todos los clientes listados en el panel derecho. Si hace clic en "Norte", la lista estaría limitada a aquellos clientes de la zona norte de México.

En la Interfaz Navegador, todo se ve como una página web. Por ejemplo, el menú principal es como la página principal de sitios como Yahoo!, Altavista, etc. Esta es la mejor interfaz para los novicios, pero es difícil de implementar en una sola aplicación, así que es muy común ver páginas HTML combinadas con scripts o programas CGI (u otras formas de procesamiento en servidor como PHP, ASP, JSP, etc.). Mucho esfuerzo se va en la interfaz, para hacer la aplicación fácil de usar, así que normalmente estas aplicaciones no son muy poderosas y son difíciles de mantener.

Color

El color es un elemento muy importante (yo diría CRITICO) de la interfaz de usuario. Windows, Linux y otros sistemas operativos permiten la configuración de los colores, no sólo por razones estéticas, sino también porque muchas personas tienen alguna clase de impedimento visual. Muchas personas necesitan altos contrastes para poder leer normalmente (generalmente texto oscuro sobre fondo claro, aunque algunas personas prefieren texto claro sobre fondo oscuro). También debe tener en cuenta que cerca del 7% de la población (10% de los hombres) sufren de alguna forma de daltonismo (incapacidad de distinguir ciertos colores), que les hace imposible leer con ciertas combinaciones de colores (dependen el tipo específico de daltonismo que padezcan).

Ya sea por razones de gusto personal o por problemas de vista, muchas personas se tomaron la molestia de cambiar los opciones de color para satisfacer sus necesidades, así que debería considerar que pasar por encima de los colores del sistema en su aplicación es casi un pecado capital, pero hay una excepción a esta regla: si usa una imagen de fondo y presenta texto sobre ella, debe anular el color de texto predeterminado para asegurarse que el color del texto contrasta fuertemente con la imagen (pero debería restringir sus opciones de color a blanco o negro para asegurarse que no estará tratando con una combinación ilegible para quienes sufren de ceguera de color).

Consejo: Si se decide por no usar los colores del sistema, provea una forma para el usuario de configurar los colores, o por lo menos use colores que reduzcan los problemas de visión. Por ejemplo, el azul brillante sobre fondo blanco puede que esté bien para resaltar hipervínculos, pero mucha gente lo considera ilegible para textos más largos. Una fuente negra sobre un fondo gris claro estándar no contrasta lo suficiente para el 10% de la población, así que debería usar un gris más claro para el fondo, o si se decide por usar color, use un color claro muy insaturado (ver "Añadiendo color a sus aplicaciones").

Consejo: Otra recomendación es que no dependa solamente del color para significar algo. Por ejemplo, si usa el verde para significar "adelante" y el rojo para significar "alto", sería sabio usar también una etiqueta. Si su programa muestra barras de colores, para citar otro ejemplo, sería bueno usar diferentes patrones para cada color o alguna diferenciación en la escala de grises (técnicamente, si por ejemplo usa RVA(255,0,0) como rojo, podría usar RVA(0,229,0) como verde, no RVA(0,255,0), así alguien que no puede distinguir entre ambos colores puede percibir la diferencia en luminosidad).

Resolución y profundidad color

La mayoría de los desarrolladores trabajan en resoluciones de 800 x 600 o más y están acostumbrados al color verdadero, mientras que quizás la mayoría de los usuarios trabajan en 640 x 480 y muchos aún tienen placas VGA de 256 colores. Debe asegurarse que su aplicación se vea correctamente en todas las resoluciones y profundidades de color.

Para la resolución, debe asegurarse que su aplicación quepa en una pantalla de 640 x 480, pero asegurarse que su aplicación se vea bien en 256 colores requiere un poco más de esfuerzo. Puede por ejemplo restringirse a la paleta de seguridad de MSIE y para sus gráficos puede proveer representaciones alternativas para cada profundidad color y cargar en tiempo de ejecución la versión que concuerde con las capacidades del dispositivo.

Fuentes

Si su aplicación usa fuentes que no vienen con el SO, es muy probable que los usuarios no las tengan, así que debería limitarse a las fuentes básicas o bien empaquetar las fuentes con su aplicación e instalarlas con su programa de instalación (no espere que el usuario lo haga "a mano").

En Windows, el uso de fuentes acarrea otro problema porque permite al usuario cambiar los tamaños normales de las fuentes, y esto ocasiona problemas a las aplicaciones que usan pixeles en vez de twips para sus medidas. Debería asegurarse que su aplicación puede verse correctamente al menos con "fuentes grandes" (125% del tamaño normal) dado que el uso de otras proporciones se desaconseja.

Lectura adicional

Estos sitios están en inglés, pero son interesantes.

 
JfControls Library - para Delphi y C++ Builder