Discusión sobre el artículo "Cómo crear un panel gráfico de cualquier nivel de complejidad" - página 9

 
Vasiliy Pushkaryov:
Todavía no me lo he encontrado. No se. Stanislav responde a una de las preguntas en el post 27 de este hilo, Desactivar la biblioteca estándar también se toca allí, échale un vistazo.

aplicado el método Visible()

respira como necesito

y otro agradecimiento a MQ por MQL, por supuesto.

bueno, todo se puede realizar, cualquier fantasía ;)
 

Hola a los dos,

No puedo agradeceros a ambos lo suficiente. A menudo me he topado aquí con código de programa absolutamente basura y gracias a vuestras críticas me he ahorrado mucho tiempo buscando el significado de este tipo de programación.
¿Hay alguna descripción razonable de la sintaxis MQL completa traducida al alemán en algún sitio?

Die Ersetzung des CWndContainer
Die Ersetzung des CWndContainer
  • www.mql5.com
Diese Datei ersetzt die originale Datei WndContainer.mqh. Er verhindert die Veränderung des Charts beim Druck und bei der Haltung der Maus-Taste innerhalb im Bereichs des Containers.
 
Joosy:

Hola a los dos,

No puedo agradeceros a ambos lo suficiente. A menudo me he topado aquí con código de programa absolutamente basura y gracias a vuestras críticas me he ahorrado mucho tiempo buscando el significado de este tipo de programación.
¿Hay alguna descripción razonable de la sintaxis MQL completa traducida al alemán en algún sitio?

  1. https://www.mql5.com/files/pdf/mql5_german.pdf
  2. https://www.mql5.com/es/docs/function_indices
    Se trata de una lista en la que puedes buscar palabras clave con Ctrl+F según el lema...
  3. En el editor, puedes colocar el ratón sobre una función MQL5 y pulsar F1 para ir directamente a la documentación de esta función, algunas con ejemplos...
 
Carl Schreiber:
  1. https://www.mql5.com/files/pdf/mql5_german.pdf
  2. https://www.mql5.com/es/docs/function_indices
    Esta es una lista en la que puedes buscar palabras clave con Ctrl+F según el lema, what was the name again...
  3. En el editor, puedes colocar el ratón sobre una función MQL5 y pulsar F1 para ir directamente a la documentación de esta función, algunas con ejemplos...
Básicamente, conozco la documentación. Sin embargo, me inspiran una vez más los enlaces que has proporcionado a la visualización general. Desde este punto de vista, es un enfoque diferente.
Gracias.
 
Joosy:
Básicamente, conozco la documentación. Sin embargo, me inspiran una vez más los enlaces que has proporcionado a la visualización general. Desde este punto de vista, es un enfoque diferente.
Gracias.

También probé los paneles, pero no me funciona porque siempre está en la ventana del gráfico.

Ahora me he pasado y lo he colocado todo en una ventana de indicadores, que siempre tengo en la parte inferior del gráfico

 

sip, para crear un panel es necesario entender docenas de líneas de código y luego hacer docenas y más.... ¡¡¡¡Se esperaba que la funcionalidad ya está implementado, que está seleccionado o habilitado (Enable), pero - no!!!!

con todo respeto, pero no vi de lo simple a lo complejo. Voy a dibujar cuadrados y envolverlos en mis envolturas.

PS: archivos a los artículos mejor publicar por separado - disponible para ver en el navegador.

[Eliminado]  

Hola Vladimir,


Muchas gracias por el artículo, es muy útil. Sólo me preguntaba acerca de algunas partes sobre el cambio de color de los objetos m_client_area y m_background:

   int total=AppWindow.ControlsTotal();
   CWndClient*myclient;
   for(int i=0;i<total;i++)
     {
      CWnd*obj=AppWindow.Control(i);
      string name=obj.Name();
      PrintFormat("%d is %s",i,name);
      //--- color 
      if(StringFind(name,"Client")>0)
        {
         CWndClient *client=(CWndClient*)obj;
         client.ColorBackground(clrRed);
         myclient=client;
         Print("client.ColorBackground(clrRed);");
         ChartRedraw();
        }
      //---
      if(StringFind(name,"Back")>0)
        {
         CPanel *panel=(CPanel*) obj;
         panel.ColorBackground(clrGreen);
         Print("panel.ColorBackground(clrGreen);");
         ChartRedraw();
        }
     }

Las partes resaltadas son los elementos sobre los que no estaba seguro. Para descomponerlo, entiendo lo que hace todo el código, pero no estoy seguro de cómo lo hace. Yo no estaba acerca de los dos códigos de abajo:


1. ¿Es el acceso a un archivo de control como WndClient.mqh y lo que es el * para.

CWndClient *client=(CWndClient*)obj;

2. Tengo obj es probablemente un objeto y la parte del nombre es para el nombre del objeto. Sin embargo, si pongo obj.Name(); en cualquier otro código que no lo entiende, así que sé que su único a algo de arriba. Yo no estaba seguro de cómo encaja.

obj.Name();


Aprecio si usted tiene el tiempo para responder, y gracias de antemano.

 
ctrading :

***

2. Mi otra pregunta era lo que son obj y Name(); como se muestra a continuación. Entiendo obj es probablemente un objeto y la parte de nombre es para el nombre del objeto. Sin embargo, si pongo obj.Name(); en cualquier otro código que no lo entiende, así que sé que es único para algo de arriba. Yo no estaba seguro de cómo encaja.

obj.Name();

***

La variable obj vive sólo durante una iteración del bucle for .

 

¡Muchas gracias por tu artículo!

Soy un programador principiante y estoy intentando crear un panel mucho más complejo.

Estoy atascado algunos días para crear CLabel y CButton en la cabecera de la clase.

Como voy a usar muchas etiquetas con el mismo texto, como un "guión" por ejemplo

Estoy tratando de encontrar algún tipo de bucle o una matriz para crear una gran cantidad de etiquetas en el encabezado de la clase (privado):

class CTradePanel : public CAppDialog
  {
private:
   
   CLabel            dashs[100];   //Crear un montón de guiones en el panel
  }


¿Cómo puedo llenar un array con "etiquetas"?

Mi idea es después de eso, voy a llamar a algún tipo de función de abajo:

for(int i=0 ; i<100 ; i++)
      {
       string dash_name = "dash_"+IntegerToString(i);
       if(!CreateLabel(chart,subwin,dash_name,"-",5*i,5*i))
         {
          return false;
         }
      }

Pero, devuelve el error: "'dash_name' - parameter conversion not allowed"

¿Cómo puedo llenar un array con "CLabel" y luego usar estas "etiquetas" en una función de bucle for?

¿Hay alguien que me pueda ayudar?

 
Guilherme Mendonca :

Muchas gracias por su artículo.

Soy un programador principiante y estoy tratando de crear un panel mucho más complejo.

Estoy atascado algunos días para crear CLabel y CButton en el encabezado de la clase.

Como voy a usar muchas etiquetas con el mismo texto, como un "guión" por ejemplo

Estoy tratando de encontrar algún tipo de bucle o una matriz para crear una gran cantidad de etiquetas en el encabezado de la clase (privado):


¿Cómo puedo llenar un array con "etiquetas"?

Mi idea es después de eso, voy a llamar a algún tipo de función a continuación:

Pero, devuelve el error: "'dash_name' - parámetro de conversión no permitido"

¿Cómo puedo llenar un array con "CLabel" y luego usar estas "etiquetas" en una función de bucle for?

¿Hay alguien que me pueda ayudar?

Necesitas conectar la clase CArrayObj. Y actuar en el ejemplo de la ayuda.

Documentation on MQL5: Standard Library / Data Collections / CArrayObj
Documentation on MQL5: Standard Library / Data Collections / CArrayObj
  • www.mql5.com
CArrayObj - Data Collections - Standard Library - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5