- Tipos de objetos y características de la especificación de sus coordenadas
- Objetos vinculados a tiempo y precio
- Objetos vinculados a coordenadas de pantalla
- Crear objetos
- Borrar objetos
- Encontrar objetos
- Visión general de las funciones de acceso a las propiedades de los objetos
- Propiedades principales de los objetos
- Coordenadas de tiempo y precio
- Anclar la esquina de la ventana y las coordenadas de la pantalla
- Definir el punto de anclaje en el objeto
- Gestión del estado de los objetos
- Prioridad de los objetos (orden Z)
- Ajustes de visualización de objetos: color, estilo y marco
- Ajustes de fuente
- Rotar un texto en un ángulo arbitrario
- Determinar ancho y alto del objeto
- Visibilidad de los objetos en el contexto de marcos temporales
- Asignar un código de carácter a una etiqueta
- Propiedades de los rayos para objetos con líneas rectas
- Gestionar el estado pulsado de los objetos
- Ajustar imágenes en objetos bitmap
- Recortar (dar salida a parte) de una imagen
- Propiedades de los campos de entrada: alineación y sólo lectura
- Anchura del canal de desviación estándar
- Establecer niveles en objetos de nivel
- Propiedades adicionales de los objetos de Gann, Fibonacci y Elliot
- Objeto gráfico
- Mover objetos
- Obtener hora o precio en puntos de línea especificados
Anclar la esquina de la ventana y las coordenadas de la pantalla
Para los objetos que utilizan un sistema de coordenadas en forma de puntos (píxeles) en el gráfico, debe seleccionar una de las cuatro esquinas de la ventana, con respecto a la cual se contarán los valores a lo largo del eje horizontal X y del eje vertical Y hasta el punto de anclaje en el objeto. Estos aspectos se controlan mediante las propiedades de la tabla siguiente:
Identificador |
Descripción |
Tipo |
---|---|---|
OBJPROP_CORNER |
Esquina del gráfico para anclar el objeto gráfico |
ENUM_BASE_CORNER |
OBJPROP_XDISTANCE |
Distancia en píxeles a lo largo del eje X desde la esquina de anclaje |
int |
OBJPROP_YDISTANCE |
Distancia en píxeles a lo largo del eje Y desde la esquina de anclaje |
int |
Las opciones válidas para OBJPROP_CORNER se resumen en la enumeración ENUM_BASE_CORNER.
Identificador |
Ubicación del centro de coordenadas |
---|---|
CORNER_LEFT_UPPER |
Esquina superior izquierda de la ventana |
CORNER_LEFT_LOWER |
Esquina inferior izquierda de la ventana |
CORNER_RIGHT_LOWER |
Esquina inferior derecha de la ventana |
CORNER_RIGHT_UPPER |
Esquina superior derecha de la ventana |
El valor predeterminado es la esquina superior izquierda.
En la siguiente figura se muestran cuatro objetos Botón con el mismo tamaño y distancia desde la esquina de anclaje en la ventana. Cada uno de estos objetos sólo difiere en el ángulo de unión. Recuerde que los botones tienen un punto de anclaje que siempre está situado en la esquina superior izquierda del botón.
Disposición de objetos vinculados a distintas esquinas de la ventana principal
Los cuatro objetos están actualmente seleccionados en el gráfico, por lo que sus puntos de anclaje aparecen resaltados en un color contrastado.
Cuando hablamos de esquinas de ventana nos referimos a la ventana o subventana concreta en la que se encuentra el objeto y no a todo el gráfico. En otras palabras: en los objetos de las subventanas, la coordenada Y se mide desde el borde superior o inferior de esta subventana.
En la siguiente ilustración se muestran objetos similares en una subventana, ajustados a las esquinas de la subventana.
Ubicación de objetos con vinculación a diferentes esquinas de la subventana
Mediante el script ObjectCornerLabel.mq5 el usuario puede probar el movimiento de una inscripción de texto, para lo cual el ángulo de anclaje en la ventana se especifica en el parámetro de entrada Corner.
#property script_show_inputs
|
Las coordenadas cambian periódicamente y aparecen en el texto de la propia inscripción. Así, la inscripción se desplaza en la ventana y, cuando llega al borde, rebota en él. El objeto se crea en la ventana o subventana en la que se soltó el script mediante el ratón.
void OnStart()
|
Para un posicionamiento correcto, hallamos las dimensiones de la ventana (y a continuación comprobamos si han cambiado) y buscamos el punto medio para la colocación inicial del objeto: las variables con las coordenadas x y y.
A continuación, creamos y configuramos una inscripción, sin coordenadas todavía. Es importante tener en cuenta que habilitamos la posibilidad de seleccionar un objeto (OBJPROP_SELECTABLE) y seleccionarlo (OBJPROP_SELECTED), ya que esto nos permite ver el punto de anclaje en el propio objeto, con el que se mide la distancia desde la esquina de la ventana (centro de coordenadas). Estas dos propiedades se describen con más detalle en la sección sobre Gestión del estado de los objetos.
ObjectCreate(0, name, OBJ_LABEL, t, 0, 0);
|
En las variables px y py, registraremos los incrementos de coordenadas para la emulación del movimiento. La propia modificación de coordenadas se realizará en un bucle infinito hasta que sea interrumpida por el usuario. El contador de iteraciones permitirá periódicamente, cada 50 iteraciones, cambiar la dirección del movimiento de forma aleatoria.
int px = 0, py = 0;
|
Intente ejecutar el script varias veces, especificando diferentes esquinas de anclaje.
En la siguiente sección aumentaremos este script controlando también el punto de anclaje en el objeto.