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

 
En el archivo Element.mqh, en el constructor CElement, sustituye los valores de m_font y m_font_size.
¿Y cómo hacer lo mismo sin editar la biblioteca?
 
o-dima:
En el archivo Element.mqh en el constructor CElement reemplazar los valores m_font y m_font_size.
¿Y como hacer lo mismo sin modificar la libreria?

¿Y cuál es el problema para que cada elemento especifique estos valores al crearlo?

 
Irracional si hay cien elementos.
 

Hola a todos,

Probé esta fuente, funcionó. Realmente un gran trabajo, ¡gracias!

Intenté adaptarlo a mis necesidades y no funcionó. Después de horas de depuración lo encontré:

Cuando el nombre del fichero ExampleEA.mq5 es mayor de 14 caracteres, que durante la creación del combobox, la función ResourceCreate() dentro de la clase Canvas falla con el error 4016 (resource not found).

¿Se conoce este comportamiento? Dado que no conozco las circunstancias exactas que conducen a este error, intento averiguar cómo prevenir este tipo de errores.



Actualización: He encontrado una discusión correspondiente con una solución rápida aquí.

Lib 'EasyAndFastGUI': Creating Canvas fails with error 4016 after update build 2265
Lib 'EasyAndFastGUI': Creating Canvas fails with error 4016 after update build 2265
  • 2019.12.14
  • www.mql5.com
Hi guys, the following error occurs (which did not before releasing build 2265) when I create GUI elements with the EasyAndFastGUI library (https...
 
OMG. Es complejo pero avanzado y el diseño de la interfaz de usuario es muy bonito. ¡GENIAL!
 
2021.01.18 17:57:52.598 MacdSampleCFrames (Si-3.21,M2)  CElement::CreateCanvas > Не удалось создать холст для рисования элемента (CButton): 4016
2021.01.18 17:57:52.598 MacdSampleCFrames (Si-3.21,M2)  CProgram::OnTesterInitEvent > Could not create the GUI!

Después de una de las actualizaciones, el buffer para la cadena de variables globales del terminal se redujo y ha estado generando un error crítico durante algún tiempo.

Se puede curar con un rápido hack sin escarbar en el código, simplemente renombrando el archivo de inicio del Asesor Experto, acortando su nombre

por ejemplo de MacdSampleCFrames.ex5 a sólo Macd.ex5.

 

¿Cómo puedo configurar los parámetros de la etiqueta de texto de Anchor(ANCHOR_RIGHT)?

¡Es un error! ?

 

Gustavo Enedir Hennemann:
Hello,
I didn't get it. What to do?

Reemplazar de m_main a CElementBase:: donde aparece la advertencia.

 
¿Por qué no escribes métodos para modificar las propiedades de los objetos (como fuente, tamaño, color, color de fondo, etc.) en la clase CElement en lugar de utilizar las propiedades por defecto. Esto es muy poco amigable para la programación
 

¡Hola @Mikhail Sergeev, @Paulo Campello!

Chicos,

He reducido el número de advertencias de 18 a 6.

Y esos 6 se reducen a 4 tipos de problemas. ¿Pueden aconsejarme cómo corregirlos correctamente?

1. ¿Cómo puedo reemplazar correctamente con "CElementBase::"?

//--- Определим цвет для линии
   color clr=m_back_color;
   if(m_tabs.GetButtonPointer(m_selected_tab).IsLocked()) // ¡ésta!
      clr=m_tabs.GetButtonPointer(m_selected_tab).BackColorLocked();
//--- Рисуем линию
   m_canvas.Line(x1,y1,x2,y2,::ColorToARGB(clr,m_alpha));
  }


2. Y aquí - cuando reemplazo "el." con "CElementBase::" - hay un nuevo error de compilación que dice "IsAvailable - access tonon-static member of function" - ¿cómo solucionarlo correctamente?

      for(int e=0; e<elements_total; e++)
        {
         //--- Проверяем только доступные элементы
         CElement *el=m_wnd[m_active_window_index].m_elements[e];
         if(!el.IsVisible() || !el.IsAvailable() || el.IsLocked())
            continue;
         //--- Обработка события в обработчике элемента
         el.OnEvent(m_id,m_lparam,m_dparam,m_sparam);
        }


3. Misma línea: cuando sustituyo "el.IsLocked()" por "CElementBase::IsLocked" : error "IsLocked - access to non-static member of function"

4. ¿Con qué reemplazo "m_windows[0].IsLocked()"?

//--- Выйти, если интерфейс не создан
   if(windows_total<1)
      return;
//--- Изменить размер всех элементов заблокированной формы, если включен один из режимов
   if(m_windows[0].IsLocked() && (m_windows[0].AutoXResizeMode() || m_windows[0].AutoXResizeMode()))
     {

Por favor, ¡ayuda! Sería genial usar esta librería. Pero necesitamos resolver estas cosas primero.

Gracias.