Librerías: EasyAndFastGUI - librería para crear interfaces gráficas - página 11
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
Inicialmente simplemente no existía la tarea de que después de crear la GUI fuera necesario mover elementos. Todo se basaba en la idea, cuando cada elemento ya tenía todo el comportamiento necesario implementado.
Contra preguntas: ¿Por qué es necesario mover elementos? ¿Qué se quiere hacer? ¿Qué comportamiento al interactuar con la GUI quieres obtener?
Para entender si algo se romperá, necesitas probar todos los elementos después de cada cambio en las clases base. Ya es difícil decirlo de entrada. Hace tiempo que no miro en profundidad.
Crea una GUI de prueba con todos los elementos de la librería y pruébalos después de los cambios.
Por ejemplo, las listas expandibles. Cuando haces clic, algunos de los elementos se ocultan, todo lo de abajo se despliega. Y viceversa.
La GUI de prueba es una buena idea, tendré que intentar hacerla :)
Por cierto, en el mismo CElement::Moving.
Si hay un binding, el elemento se mueve junto con el canvas. Así que teóricamente nada debe romper :)
¿Alguien ha intentado crear un combobox utilizando esa biblioteca - para cambiar los elementos en ella ????? Share ¿Cómo se hace?
Creo un combobox, todo funciona. Luego lo relleno con elementos usando la siguiente función:
Todo funciona. Después selecciono en el combobox rellenado - por ejemplo, el tercer valor. y hago clic en el botón, el resultado es una serie de acciones que resultan en el desbordamiento del combobox. Y lo vuelvo a llenar con un valor (por ejemplo, inicialmente había 20 elementos en él, ¡después de hacer clic en el botón sólo queda un elemento!)
Y aquí viene un error interesante - después de sobreescribir todo (usando la función anterior) - intento abrir el cuadro combinado, pero no puedo hacerlo, ¡porque el error Array out of range!
El error ocurre en el método:
void CListView::RedrawItemsByMode(const bool is_selected_item=false).
En la línea 1364. Según he averiguado investigando, ocurre porque :
1) al seleccionar el tercer elemento de la lista (antes de pulsar el botón) - la variable
m_prev_item_index_focus se rellena con un índice igual a 3. Luego este índice se pasa a través de m_prev_item_index_focus.
Luego este índice se pasa a través de la variable prev_item_index al array
indexes
en la línea 1357. El resultado -en la línea 1364- es la selección de un valor de la matriz
m_items
en el índice #2 (el índice correspondiente al último elemento seleccionado), mientras que el array (m_items) sólo tiene un valor en el índice #0.
Estoy indagando por segundo día y todavía no he podido encontrar el lugar donde el valor de la variable
m_prev_item_index_focus se pondría a cero.
Lógicamente, debería borrarse en el método Clear de la clase CListView, que utilicé para borrar todos los elementos allí, pero desafortunadamente no pude encontrar tal método allí....
En relación con todas las preguntas anteriores:
1) ¿Es un error en la biblioteca, o estoy actualizando los valores incorrectamente?
2) ¿Cuál es la mejor manera de solucionar este problema?
Hasta ahora todas las soluciones que he encontrado se reducen a editar el código de la biblioteca (añadiendo nuevas 3 líneas de código) - pero no me gusta la idea de retocar el código de otra persona...
Código mínimo reproducible para mi pregunta:
...
Hasta ahora todas las soluciones que he encontrado se reducen a editar el código de la biblioteca (añadiendo nuevas 3 líneas de código) - pero no me gusta la idea de retocar el código de otra persona...
Gracias por el mensaje.
Intenta hacer una pequeña adición al método de la clase CListView. Tienes que poner a cero los campos auxiliares como se indica a continuación:
Gracias por el mensaje.
Intente hacer una pequeña adición al método de la clase CListView. Es necesario poner a cero los campos auxiliares como se indica a continuación:
Gracias por su respuesta.
¿Qué tal un repositorio en bitbucket y aceptar commits de usuarios activos de la biblioteca?
Lo terminaremos más rápido juntos ;)
¿Puede decirme cómo manejar correctamente el botón de cierre de la ventana?
El problema es el siguiente: coloco un Asesor Experto (por ejemplo, ExampleEAF.ex5) y mi indicador en una ventana separada debajo del gráfico (el código mínimo sólo muestra una ventana vacía). Luego hago clic en el botón de cerrar ventana en cualquiera de estas aplicaciones y ambas se cierran (se eliminan del gráfico).
Este comportamiento no es del todo correcto. ¿Hay alguna forma de distinguir los eventos de las distintas aplicaciones que trabajan simultáneamente en el mismo gráfico? Existe la sospecha de que otros eventos puedan solaparse también.
¿Qué tal un repositorio en bitbucket y aceptar commits de usuarios activos de la biblioteca?
Lo terminaremos más rápido juntos ;)
Ya me han dado acceso. Tengo dudas sobre muchas de las ediciones.
No hay justificación para estos o aquellos cambios. Es más fácil discutirlo aquí en el foro.
Si se hacen cambios, es necesario dar ejemplos y resultados de pruebas con la explicación de por qué será mejor.
¿Puede decirme cómo manejar correctamente el botón de cierre de la ventana?
El problema es el siguiente: coloco un Asesor Experto (por ejemplo, ExampleEAF.ex5) y mi indicador en una ventana separada debajo del gráfico (el código mínimo sólo muestra una ventana vacía). Luego hago clic en el botón de cerrar ventana en cualquiera de estas aplicaciones y ambas se cierran (se quitan del gráfico).
Este comportamiento no es del todo correcto. ¿Hay alguna forma de distinguir los eventos de las distintas aplicaciones que trabajan simultáneamente en el mismo gráfico? Sospecho que también pueden solaparse otros eventos.
Lo probaré cuando tenga tiempo e informaré del resultado aquí.
Andrey Khatimlianskii:
Как на счет репозитория на битбакете и принятия коммитов от активных пользователей библиотеки?
Вместе быстрее допилим ;)
Anatoli Kazharski:
...
Si se hace algún cambio, es necesario dar ejemplos y resultados de pruebas con una explicación de por qué sería mejor.
Al menos brevemente. Por ejemplo:
Correcciones en la clase CListView. En el método Clear() necesitamos poner a cero algunos campos auxiliares para evitar que otros métodos de la clase se salgan del array.