Discusión sobre el artículo "Interfaces gráficas IX: Elementos "Indicador de progreso" y "Gráfico lineal" (Capítulo 2)" - 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
¿Por qué?
Declara los TIPOS de datos al principio del programa, y después - inicia los valores de las variables de los tipos que declaraste.
m_barra_de_progreso.Actualizar(i,total); no es nada. ¿Qué tamaño de barra debería mostrar?
Declara los TIPOS de datos al principio del programa, y después - inicia los valores de las variables de los tipos que has declarado.
...
m_progress_bar.Update(i,total); no muestra nada. ¿Qué tamaño de barra debería mostrar?
double new_width=(m_current_index/m_steps_total)*m_bar_bg.XSize();así ...así ...
1. Declaración del tipo de datos.
2. Asignación de un valor a una variable de ese tipo.
Si no cuadra, entonces - has metido la pata en algo.
Reglas para entrar en una habitación:
1. Granada.
2. Rifle automático.
3. Я.
Lo principal es no confundirse.
1. Declaración de tipos de datos.
2. Asignación de un valor a una variable de este tipo.
Si no cuadra, entonces - has metido la pata en algo.
Reglas para entrar en una habitación:
1. 1. Granada.
2. Rifle automático.
3. Я.
Lo principal es no confundirse.
Quizás tus palabras sean demasiado sabias para mi mente vacacional....
¿Por qué zuid-zuid-oeste?
Anatoly, disculpa la intromisión, pero me gustaría saber cómo es posible actualizar la barra de progreso dentro de un bucle con cálculos pesados.
Por ejemplo, tenemos una barra de progreso m_progress_bar, tenemos un bucle dentro de CProgram
¿Podrías explicarme en un ejemplo tan "abstracto" lo que no entiendo?
¿Quizás estos pesados cálculos son tan largos que el programa no puede salir de la función Func()? ¿Es por eso que la barra de progreso no se actualiza? ¿Quizás hay un bucle perpetuo ahí?
Cada elemento tiene métodos Show() y Hide() para controlar su visibilidad.
m_progress_bar.Hide(); // no oculta la barra de progreso por alguna razón, tengo que ocultarla bajo otro objeto gráfico.//---
En general, es difícil decir algo sobre un bloque de código sacado de contexto. Un ejemplo de trabajo con una barra de progreso donde todo funciona se muestra en el artículo: GUIs X: Updates for Easy And Fast library (build 2).
Mejor aún, adjunta un código mínimo para la reproducción. Es la forma más rápida de obtener una pista. Un simple diagrama es suficiente para la reproducción:
El botón de la ventana principal abre el cuadro de diálogo. El botón del cuadro de diálogo inicia los "cálculos pesados".
Probablemente estos pesados cálculos son tan largos que el programa no puede salir de la función Func() ? ¿Por eso no se actualiza la barra de progreso? ¿Quizás hay un bucle perpetuo ahí?
Cada elemento tiene métodos Show() y Hide() para controlar su visibilidad.
//---
En general, es difícil decir algo sobre un bloque de código sacado de contexto. Un ejemplo de trabajo con una barra de progreso donde todo funciona se muestra en el artículo: GUIs X: Updates for Easy And Fast library (build 2).
Sí, Anatol, funciona en tus ejemplos, por supuesto. Pero es sólo un ejemplo, es sólo una decoración. La barra de progreso, el ejemplo de su actualización, está hecho en un temporizador con valores abstractos.
Cuando me pongo a hacerlo no en un temporizador con valores hipotéticos, sino en un bucle largo normal dentro del programa, no en un temporizador, la barra de progreso no se actualiza durante el bucle, se muestra ya actualizada cuando se vuelve a mostrar.
¿Te importaría dar un ejemplo de trabajo con la barra de progreso en el programa principal en algún bucle? Por ejemplo, en un bucle como este:
sería interesante ver el funcionamiento correcto con la barra de progreso, no como yo creo que debería ser.
Sí, Anatole, funciona en tus ejemplos, por supuesto. Pero son sólo un ejemplo, una farsa. La barra de progreso, el ejemplo de su actualización, está hecho en un temporizador con valores abstractos.
Cuando me pongo a hacerlo no en un temporizador con valores hipotéticos, sino en un bucle largo normal dentro del programa, no en un temporizador, la barra de progreso no se actualiza durante el bucle, se muestra ya actualizada cuando se vuelve a mostrar.
¿Quizás ChartRedraw() podría ayudar?
Sí, gracias, m_chart.Redraw() ayudó:
Capturas de pantalla de la plataforma de negociación MetaTrader
KBR, D1, 2016.08.22.
Just2Trade Online Ltd, MetaTrader 5, Demo