Discusión sobre el artículo "Cómo crear un panel informativo para mostrar datos en indicadores y asesores" - página 2
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Hola.
Hola.
se declara una variable puntero a un futuro nuevo objeto creado dinámicamente de la clase y se inicializa inmediatamente con valor NULL.
Una instancia simple de una clase se declara de la siguiente manera:
Pero en este caso no se puede declarar y crear una instancia de esta manera - la clase no tiene constructor sin parámetros formales.
Por lo tanto, al declarar una instancia de esta manera, es necesario especificar todos los parámetros necesarios del objeto de clase, que deben pasarse al constructor de la clase:
------------------------
En el ejemplo de trabajo con la clase, primero se crea un puntero vacío al futuro objeto en el indicador, y luego, en OnInit() se crea el objeto panel, donde el puntero al objeto creado se escribe en la variable puntero:
Luego en OnDeinit() se borra el objeto en memoria por este puntero:
Si usted simplemente creara un nuevo objeto a través del operador new sin escribir un puntero al objeto creado en una variable, no podría borrarlo más tarde, resultando en una fuga de memoria.
Así que, en resumen, en el ejemplo del artículo
Si la instancia necesaria de la clase (dashboard CDashboard) se hubiera creado inmediatamente, no habría sido necesario ningún puntero a la misma - se habría accedido a ella de la misma manera utilizando el operador "point". Y no habría necesidad de borrarlo cuando el trabajo hubiera terminado - el subsistema terminal lo hace por sí mismo. Pero sería la única instancia de la clase en el programa.
La creación dinámica permite crear sobre la marcha nuevos objetos de la clase deseada y referirse a ellos mediante punteros. Por eso en el ejemplo se utilizó la creación dinámica de un objeto de clase. Simplificado, sin cubrir algunos puntos.
Gracias por la respuesta completa! así que para cada objeto su propio constructor en otro caso objeto con argumentos solicitados de la clase, en cualquier etapa puede crear diferentes objetos!(Nus se vuelve un poco más claro).
En realidad el interés de crear un panel de información, es una consecuencia de la DPI del monitor, en mi caso 168. ¡Comentario(); es muy pequeño!
Hay TerminalInfoInteger(TERMINAL_SCREEN_DPI) Quiero crear teniendo en cuenta la resolución ... y quiero crear por grupo de colores, por conveniencia.
Tal vez usted tiene una solución de este tipo? Su código es bueno, legible ... ¡Yo, por el contrario, largo, incomprensible, como resultado tengo que reescribir todo varias veces! Gracias por su ayuda.
Gracias Por una respuesta completa! por lo que para cada objeto tiene su propio constructor en el otro caso objeto con argumentos solicitados a la clase, en cualquier etapa puede crear diferentes objetos!(Nous se vuelve un poco más claro).
En realidad el interés de crear un panel de información, es una consecuencia del monitor DPI, en mi caso 168. ¡Comment(); es muy pequeño!
Hay TerminalInfoInteger(TERMINAL_SCREEN_DPI) Quiero crear teniendo en cuenta la resolución ... y quiero crear por grupo de colores, por comodidad.
Tal vez usted tiene una solución de este tipo? Su código es bueno, legible ... ¡Yo, por el contrario, largo, incomprensible, como resultado tengo que reescribir todo varias veces! Gracias por su ayuda.
La solución está justo en los ejemplos en la ayuda:
Foro sobre trading, sistemas automatizados de trading y prueba de estrategias de trading.
Galería de interfaces de usuario escritas en MQL
Artyom Trishkin, 2024.05.31 10:33 AM
Aquí(TERMINAL_SCREEN_DPI):
Ejemplo de cálculo del factor de escala:
Cuando se utiliza de esta manera, un recurso gráfico tendrá el mismo tamaño a ojo en monitores con diferentes resoluciones. Al mismo tiempo, los tamaños de los elementos de control (botones, ventanas de diálogo, etc.) corresponderán a los ajustes de personalización.
Por desgracia, no tengo un monitor 4K, así que no puedo comprobarlo, y por la misma razón no introduzco ese recálculo en la biblioteca todavía - no es serio hacerlo al azar, sin comprobarlo.
Por desgracia, no tengo un monitor 4K, así que no puedo comprobarlo, y por la misma razón no introduzco ese recálculo en la biblioteca todavía - no es serio hacerlo al azar, sin comprobarlo.
Artem ¡hola! Aquí está la construcción teniendo en cuenta dpi.... Pero en realidad se puede ir de otra manera. Digamos que se establece el tamaño de la cabecera, calcular el tamaño del panel, altura de la línea y la altura del texto basado en el tamaño de la cabecera. Especificas dos parámetros... y cualquiera que sea el dpi. ¿o hay algún problema con eso? No estoy muy seguro, ¿Cuál es tu opinión sobre esta solución?
Artem hola! Aquí hay un build basado en dpi..... Pero básicamente se puede ir de otra manera. Digamos que se establece el tamaño de la cabecera, calcular el tamaño de la altura de la línea del panel y la altura del texto basado en el tamaño de la cabecera. Usted especifica dos parámetros... y cualquiera que sea el dpi. ¿o hay algún problema con eso? No estoy muy seguro, ¿Cuál es tu opinión sobre esta solución?
Buena idea lo del panel. Pero me he dado cuenta de que el panel cae espontáneamente a la parte inferior del gráfico cuando se cambia a él desde otro gráfico. Ejemplo:
Buena idea lo del panel. Pero me he dado cuenta de que el panel cae espontáneamente a la parte inferior del gráfico cuando se cambia a él desde otro gráfico. Ejemplo:
Hmm. Interesante fenómeno. Tendré que investigarlo en mi tiempo libre. Lo más probable es que el motivo sea el cambio de tamaño del gráfico inactivo.