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

 

Hola a todos,

He intentado usar esa libreria y añadir un Histograma con varias series como el de la increible libreria HighChart JS...




Primero intente con el componente CGraph, pero parece que no se pueden agregar varias series en modo Histograma, o no lo logre.

Entonces fundé el de la librería estándar de MT5 en Scripts \ Examples \ Canvas \ Charts \ HistogramChartSample.mq5.



Me las arreglé para personalizar un poco ...


y luego traté de crear un CHistograma basado en CElement. Creo un componente CHistogram en la carpeta Controls. Hago referencia a ese componente en WndContainer.mqh y creo un experto de ejemplo en EasyAndFastGUI \ Experts \ och_test_histogram.mq 5.

Pero no he conseguido incluir en componente CWindow.

Esto permitirá añadir en CWindow histograma y Pie ...

Cualquier ayuda será apreciada.

Saludos,

och

Interactive JavaScript charts for your webpage | Highcharts
  • www.highcharts.com
Highcharts - Interactive JavaScript charts for your web pages.
Archivos adjuntos:
 

Hola a todos,


Lo arreglé, brevemente, pero todavía tengo una fuga de memoria cuando quito el experto.



No sé cómo rastrear esta fuga de memoria ...


Bst saludos,

och

Archivos adjuntos:
EasyAndFastGUI.zip  1022 kb
 

Hola Anatoli,

Me está resultando difícil estudiar todos los artículos sobre tu biblioteca. No quiero entrar en la arquitectura y los detalles de cómo está diseñado. Sólo quiero hacer que funcione en mi EAs. ¿No has pensado alguna vez en crear una especie de tutorial para ello?

Un problema. Cuando compilo ExampleEAF, MetaEditor me muestra estas advertencias (utilizo MT5):

MetaEditor Advertencias después de compilar.

Saludos cordiales,

jeff

 

Hola a todos

Yevgen Drumachyk, ¿has recibido respuesta sobre la corrección que hay que dar al programa?

Gracias por su ayuda

 

Buenas tardes, Anatoly. Me gustaría felicitarte por tu excelente trabajo. Y aprovecho para preguntarte si puedes encajar el histograma de la última columna de la derecha en una tabla de tres columnas. La primera columna sería la lista de precios, la segunda el volumen de operaciones en cada nivel de precios y la tercera el histograma. He traducido del portugués al ruso. Espero que haya sido comprensible.

 
tailertche #:

Buenas tardes, Anatoly. Me gustaría felicitarte por tu excelente trabajo. Y aprovecho para preguntarte si puedes encajar el histograma de la última columna de la derecha en una tabla de tres columnas. La primera columna sería la lista de precios, la segunda el volumen de operaciones en cada nivel de precios y la tercera el histograma. He traducido del portugués al ruso. Espero que haya sido comprensible.

Buenas tardes.

Desafortunadamente, no he estado trabajando en esta biblioteca durante mucho tiempo. Ahora estoy ocupado con otro proyecto.

 
Anatoli Kazharski # :

Buenas tardes.

Infelizmente, no he estado en esta biblioteca durante mucho tiempo. Ahora estoy ocupado con otro proyecto.

Buenos días. Hice algunos cambios en el código y obtuve un gran resultado. Pero todo gracias a sus enseñanzas. Felicitaciones de nuevo por un trabajo que realmente merece ser reconocido.

 

Hola, ¿sigue siendo compatible esta biblioteca?

gracias

 

Hola, tienes que sustituir


CElement:: Actualizar(true)

CElementBase:: IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()


Por ejemplo



Espero que te sirva de ayuda

saludos

 

¿Pueden decirme por qué no se genera el evento de cierre de ventana para una ventana adicional? Para la ventana principal obtengo el id 1007 en OnChartEvent(), pero para la ventana adicional no....

Establezco el uso del botón de cierre mediante el método CloseButtonIsUsed() de la misma forma que con la ventana principal. Me aparece la ventana y la cruz de cierre. Pero al pulsarlo no se genera el código de cierre correcto. Y no funciona ningún evento. La ventana adicional no se mueve, entre otras cosas.

bool CButton::OnClickButton(const string pressed_object)
  {
//--- Salir si (1) nombre de objeto extraño o (2) elemento está bloqueado
   if(m_canvas.ChartObjectName()!=pressed_object || CElementBase::IsLocked())
      return(false);
//--- Si es un botón con dos estados
   if(m_two_state)
      IsPressed(!IsPressed());
//--- Redibujar el elemento
   Update(true);
//--- Enviar un mensaje al respecto
   ::EventChartCustom(m_chart_id,ON_CLICK_BUTTON,CElementBase::Id(),CElementBase::Index(),m_canvas.ChartObjectName());
   return(true);
  }

Aquí. Por alguna razón m_canvas.ChartObjectName()!=objeto_presionado.