Galería de interfaces de usuario escritas en MQL - página 50

 
hini #:
¿Cómo añaden los usuarios las imágenes que buscan y las utilizan para crear la interfaz? Esta es la cuestión.

Las imágenes de la interfaz (iconos u otras imágenes) se dividen a grandes rasgos en dos categorías:

1. Internas.

Las imágenes internas están integradas en el diseñador. Por ejemplo, las imágenes de los botones de desplazamiento, las flechas de los elementos de menú, las cruces de los botones de cierre de ventana y otras. Son imágenes estándar y se escriben con números en la matriz. También los iconos de la ventana Menú de etiquetas. Se escriben con números en una matriz especial. Incluso sin recursos externos (carpetas con imágenes) estas imágenes permanecerán y el usuario puede utilizarlas de la misma manera. En este caso la dirección del icono es el nombre por el que lo encuentra el constructor.


2. Externas.

Todas las imágenes externas deben estar ubicadas en la carpeta Imágenes. El constructor las carga como recursos y las registra en el array común de imágenes. El algoritmo accede entonces a estas imágenes como sus imágenes internas. Cuando el usuario guarda el proyecto, el algoritmo selecciona y escribe en el archivo UIDATA sólo las imágenes que necesita la interfaz de usuario.


Básicamente, es sencillo.

1. El usuario coloca la imagen deseada en la carpeta Imágenes.

2. En un archivo especial escribe una línea (por ejemplo) #resource "::Images\\/32x32\Index.bmp".

3. Luego en el código especifica:

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A,  N_LABEL,"::Images\\32x32\\Index.bmp", 
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "T1", 5,
//----------------------------------------------
//----------------------------------------------------------------------------------


Hecho.


El usuario simplemente utiliza la cadena normal de asignación de imágenes para el elemento o ventana. No se necesita nada más. El propio constructor determinará si la imagen es externa o interna. Si es externa, la sacará del recurso y la pondrá en un array con las otras imágenes.