Voy a tratar de resolver su problema con la ventana dinámica - la complejidad de la disposición de las tablas.
Permítanme ponerlo de esta manera - una ventana dinámica de pantalla completa tiene un propósito especial en la interfaz gráfica de usuario y, como consecuencia, tiene limitaciones específicas. No es universal como la ventana "AJUSTES". Y esto es lógico. Al fin y al cabo, todo lo que se "personaliza" específicamente está siempre limitado de alguna manera.
Sin embargo, una tabla dinámica o una lista infinita pueden combinarse con otros grupos de elementos en una ventana dinámica y no necesitan un espacio separado y "único", aunque, en mi opinión, es más cómodo. ¿Cómo realizar la compatibilidad de las tablas con otros grupos? - Es una cuestión de tecnología.
A modo de experimento, tomaré sus tablas e intentaré insertarlas en una ventana a pantalla completa. Por supuesto, tengo que corregir el código...
Resultado:
(Haga clic en la imagen)
No voy a publicar el código todavía, porque francamente hablando todo es muy "crudo". He tenido que usar trucos y "muletillas". Pero, como veis, todo puede funcionar.
7. Una cosa más. Tu ventana dinámica es una ventana par que se puede expandir y minimizar. No me gustaría una ventana, sino un escritorio. Como tu constructor. Para que
a) se abra inmediatamente expandida, cubriendo todo el gráfico
b) no tenga cabecera y marco (sólo barra de tareas)
c) no se podía colapsar
d) permitía colocar elementos como una ventana normal
Es decir, sustituir DINAMIC por FULLSCREEN o DESKTOP. Ya tiene la base para ello.
Después del lanzamiento de ventana dinámica pensaré en esta opción, ya que entiendo que es razonable en condiciones de pantalla pequeña de portátil.
Seguiré publicando el código de varias ventanas al día (para facilitar la comprensión).
Estoy preparando un lanzamiento para el próximo viernes-sábado.
Tareas principales establecidas:
Realizar el control por software de elementos y ventanas desde el lado de la aplicación de usuario.
Preparar/depurar la funcionalidad necesaria para que el usuario pueda trabajar con tablas.
Arreglar bugs graves con las pestañas y la barra de tareas.
Arreglar errores menores.
Hacer que el motor cargue sólo los recursos seleccionados en el momento de la compilación de la "simbiosis" con la aplicación de usuario.
Saludos! Sólo tengo una pregunta: ¿funciona tu librería bajo el depurador en modo visual? Específicamente, necesito sólo la reacción a las pulsaciones de botón y el arrastre de líneas horizontales estándar. En MT5 por OnChartEvent todo funciona en el depurador, en MT5 desde hace unos 7 años no pueden con el "terrible problema". Tal vez usted ha logrado eludir estos fallos?
Saludos, sólo tengo una pregunta: ¿funciona tu librería bajo el depurador en modo visual? Concretamente solo necesito reacción a pulsaciones de botones y arrastre de líneas horizontales estándar. En MT5 por OnChartEvent todo funciona en el depurador, en MT5 desde hace unos 7 años no pueden con el "terrible problema". ¿Tal vez te las arreglaste para eludir estos fallos?
Desafortunadamente, no. La interfaz no funciona en modo Debugging en MT5. No pude hacer nada al respecto.
Gracias por plantear este tema. Necesito probar el depurador en un programa escrito estándar conectado a mi motor gráfico.
...Necesito probar el depurador en un programa escrito estándar conectado a mi motor gráfico.
Creo que el problema tiene solución. Durante la depuración el usuario desconectará el motor comentando la línea de conexión, luego redirigirá la llamada de su funcionalidad al programa vacío abriendo una línea #include especial:
Toda la comunicación entre el programa de usuario y el motor se realiza a través de varias funciones. En primer lugar está OnChartEvent(). También OnInit(), OnTimer(), OnDeinit(). No hay más enlaces al motor, sólo a los archivos API y UIDATA. Pero hay funcionalidad casi autosuficiente allí y si deshabilitas el motor y habilitas un par de espacios en blanco, no ocurrirá ningún error. Sólo GUI dejará de funcionar, pero no funciona en modo de depuración de todos modos.
Creo que es posible deshabilitar el motor para depurar el programa de usuario.
...
Gracias por la opinión detallada.
Voy a tratar de resolver su problema con la ventana dinámica - la complejidad de la disposición de las tablas.
Permítanme ponerlo de esta manera - una ventana dinámica de pantalla completa tiene un propósito especial en la interfaz gráfica de usuario y, como consecuencia, tiene limitaciones específicas. No es universal como la ventana "AJUSTES". Y esto es lógico. Al fin y al cabo, todo lo que se "personaliza" específicamente está siempre limitado de alguna manera.
Sin embargo, una tabla dinámica o una lista infinita pueden combinarse con otros grupos de elementos en una ventana dinámica y no necesitan un espacio separado y "único", aunque, en mi opinión, es más cómodo. ¿Cómo realizar la compatibilidad de las tablas con otros grupos? - Es una cuestión de tecnología.
A modo de experimento, tomaré sus tablas e intentaré insertarlas en una ventana a pantalla completa. Por supuesto, tengo que corregir el código...
Resultado:
(Haga clic en la imagen)
No voy a publicar el código todavía, porque francamente hablando todo es muy "crudo". He tenido que usar trucos y "muletillas". Pero, como veis, todo puede funcionar.
7. Una cosa más. Tu ventana dinámica es una ventana par que se puede expandir y minimizar. No me gustaría una ventana, sino un escritorio. Como tu constructor. Para que
a) se abra inmediatamente expandida, cubriendo todo el gráfico
b) no tenga cabecera y marco (sólo barra de tareas)
c) no se podía colapsar
d) permitía colocar elementos como una ventana normal
Es decir, sustituir DINAMIC por FULLSCREEN o DESKTOP. Ya tiene la base para ello.
Continuaré un poco más tarde.
KIB-código de las ventanas incluidas en la versión (continuación):
Seguiré publicando el código de varias ventanas al día (para facilitar su comprensión).
Estoy preparando un lanzamiento para el próximo viernes-sábado.
Tareas principales establecidas:
Seguiré publicando el código de varias ventanas al día (para facilitar la comprensión).
Estoy preparando un lanzamiento para el próximo viernes-sábado.
Tareas principales establecidas:
Saludos! Sólo tengo una pregunta: ¿funciona tu librería bajo el depurador en modo visual? Específicamente, necesito sólo la reacción a las pulsaciones de botón y el arrastre de líneas horizontales estándar. En MT5 por OnChartEvent todo funciona en el depurador, en MT5 desde hace unos 7 años no pueden con el "terrible problema". Tal vez usted ha logrado eludir estos fallos?
Saludos, sólo tengo una pregunta: ¿funciona tu librería bajo el depurador en modo visual? Concretamente solo necesito reacción a pulsaciones de botones y arrastre de líneas horizontales estándar. En MT5 por OnChartEvent todo funciona en el depurador, en MT5 desde hace unos 7 años no pueden con el "terrible problema". ¿Tal vez te las arreglaste para eludir estos fallos?
...
...Necesito probar el depurador en un programa escrito estándar conectado a mi motor gráfico.
Creo que el problema tiene solución. Durante la depuración el usuario desconectará el motor comentando la línea de conexión, luego redirigirá la llamada de su funcionalidad al programa vacío abriendo una línea #include especial:
Toda la comunicación entre el programa de usuario y el motor se realiza a través de varias funciones. En primer lugar está OnChartEvent(). También OnInit(), OnTimer(), OnDeinit(). No hay más enlaces al motor, sólo a los archivos API y UIDATA. Pero hay funcionalidad casi autosuficiente allí y si deshabilitas el motor y habilitas un par de espacios en blanco, no ocurrirá ningún error. Sólo GUI dejará de funcionar, pero no funciona en modo de depuración de todos modos.
Creo que es posible deshabilitar el motor para depurar el programa de usuario.