Librerías: EasyAndFastGUI - librería para crear interfaces gráficas - página 7

 
Anatoli Kazharski:

Ya la tengo significativamente diferente de lo que se publica en el sitio.

¿Y se aceptan sugerencias de cambios en la biblioteca? :)

 
Oleksii Chepurnyi:

¿Y se aceptan sugerencias de cambios en la biblioteca? :)

Al menos siempre se tienen en cuenta.

 

El archivo MQ5.

No el mqh no tienes que compilar esos.

 
Anatoli Kazharski:

Al menos siempre lo he considerado.

Empezaré preguntando, quizás es que no lo he encontrado :) ¿Existe alguna alineación de texto, en una etiqueta por ejemplo, que no sea centrada? ¿Y existe la posibilidad de configurar el estilo del texto, negrita, cursiva, etc.?
 
Oleksii Chepurnyi:
Empezaré preguntando, quizás es que no lo he encontrado :) ¿Existe alguna alineación de texto, en una etiqueta por ejemplo, que no sea centrada? ¿Y hay alguna opción para configurar el estilo del texto, negrita, cursiva, etc.?

Hasta ahora sólo así:

//--- Propiedades de las fuentes
   m_canvas.FontSet(m_font,-m_font_size*10,FW_NORMAL);
//--- Dibuja el texto teniendo en cuenta el modo de alineación central
   if(m_is_center_text)
     {
      x =m_x_size>>1;
      y =m_y_size>>1;
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER);
     }
   else
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_LEFT);
 
Anatoli Kazharski:

Eso es todo por ahora:

Primera frase entonces.

Enums.mqh.

//+------------------------------------------------------------------+
//| Alineación del texto|
//+------------------------------------------------------------------+
enum ENUM_TEXT_ALIGN
  {
   AT_LEFT_TOP,
   AT_CENTER_TOP,
   AT_RIGHT_TOP,
   AT_LEFT_CENTER,
   AT_CENTER_CENTER,
   AT_RIGHT_CENTER,
   AT_LEFT_BOTTOM,
   AT_CENTER_BOTTOM,
   AT_RIGHT_BOTTOM,
  };

Element.mqh

protected:
   ENUM_TEXT_ALIGN   m_text_align;
   int               m_hor_space;
   int               m_ver_space;
public:
   void              SetTextAlign(const ENUM_TEXT_ALIGN align, const int hspace, const int vspace) { m_text_align=align; m_hor_space=hspace; m_ver_space=vspace; }
   if(m_is_center_text)
     {
      x =m_x_size>>1;
      y =m_y_size>>1;
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER);
     }
   else
     {
      switch(m_text_align)
        {
         case 0: m_canvas.TextOut(x+m_hor_space,         y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_LEFT|TA_TOP);       break;  // AT_LEFT_TOP
         case 1: m_canvas.TextOut((int)round(m_x_size/2),y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_CENTER|TA_TOP);     break;  // AT_CENTER_TOP
         case 2: m_canvas.TextOut(m_x_size-m_hor_space,  y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_TOP);      break;  // AT_RIGHT_TOP
         case 3: m_canvas.TextOut(x+m_hor_space,         (int)round(m_y_size/2),m_label_text,::ColorToARGB(clr),TA_LEFT|TA_VCENTER);   break;  // AT_LEFT_CENTER
         case 4: m_canvas.TextOut(m_x_size>>1,           m_y_size>>1,           m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER); break;  // AT_CENTER_CENTER
         case 5: m_canvas.TextOut(m_x_size-m_hor_space,  (int)round(m_y_size/2),m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_VCENTER);  break;  // EN_CENTRO_DERECHA
         case 6: m_canvas.TextOut(x+m_hor_space,         m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_LEFT|TA_BOTTOM);    break;  // AT_LEFT_BOTTOM
         case 7: m_canvas.TextOut((int)round(m_x_size/2),m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_CENTER|TA_BOTTOM);  break;  // AT_CENTER_BOTTOM
         case 8: m_canvas.TextOut(m_x_size-m_hor_space,  m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_BOTTOM);   break;  // AT_RIGHT_BOTTOM
         default: m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_LEFT); break;
        }
     }

No he hecho los estilos todavía.

 
Oleksii Chepurnyi:

Luego la primera sugerencia.

Luego la segunda sugerencia: hacer un editor GUI con funcionalidad de arrastrar y soltar.

 
Igor Makanu:

entonces 2ª sugerencia: hacer un editor GUI con función de arrastrar y soltar

Buena sugerencia :)

Es más fácil con estilo.

protected:
   uint              m_font_style;
public:
   void              FontStyle(const int font_style)                 { m_font_style=font_style;         }

//--- Propiedades de las fuentes
   m_canvas.FontSet(m_font,-m_font_size*10,m_font_style);
 
Oleksii Chepurnyi:

Primera sugerencia entonces.

Aún no he hecho los estilos.

Tal vez los incluya en la próxima actualización.

Igor Makanu:

entonces 2ª sugerencia: hacer un editor GUI con función de arrastrar y soltar.

No puedo prometerlo. Intentaré encontrar tiempo para ello.

 
Anatoli Kazharski:

No puedo prometerlo. Intentaré sacar tiempo para ello.

Hmm, pensé que dirías que no, pero aquí estás... ¡genial!