Spanish [B4XTable] ¿Podrá ser un bug al intentar cambiar los colores por defecto?

Gabino A. de la Gala

Active Member
Licensed User
Longtime User
Estoy intentando asignar diferentes colores por defecto a todas las "partes" de la B4XTAble para adaptarla al resto de colores de la aplicación.

El caso es que más o menos consigo cambiarlos todos menos tres cosas que estoy notando un comportamiento "extraño":
  • Table.ArrowsDisabledColor = 0x33FFFFFF: No asigna el color asigando mediante código hasta que navego por las diferentes páginas.
  • Table.HeaderColor = 0xFF002744: No coge los nuevos colores hasta que refresco la tabla por dos o tres veces (aunque me he dado cuenta que ese color lo puedo definir en el diseñador)
  • Table.HeaderTextColor = xui.Color_White: Idem al anterior.
¿Alguien más se ha dado cuenta que le pase?
 

josejad

Expert
Licensed User
Longtime User
¿Me suena que hay que poner un Sleep(0) en algún momento para que refresque?

Si no, ¿puedes subir un pequeño proyecto para probar?
 

Gabino A. de la Gala

Active Member
Licensed User
Longtime User
Acabo de darme cuenta de que si no hay filas suficientes para llenar una página, el botón de ir a la última si que coge el color personalizado, pero el de ir a la siguiente no.
 

Attachments

  • SmartSelect_20210305-212015.jpg
    SmartSelect_20210305-212015.jpg
    61.9 KB · Views: 110

Gabino A. de la Gala

Active Member
Licensed User
Longtime User
¿Me suena que hay que poner un Sleep(0) en algún momento para que refresque?

Si no, ¿puedes subir un pequeño proyecto para probar?
Lo del sleep ya lo tengo puesto al final de todas modificaciones de colores, pero no me sirvió.

Lo del ejemplo, intentaré preparar algo que no necesite acceder a datos reales como es el caso del programa en el que se me ha presentado el problema.
 

Gabino A. de la Gala

Active Member
Licensed User
Longtime User
Creo que al final he encontrado el "misterio".

Viene de una combinación de cosas que acabo de descubrir.

Hay determinadas propiedades de la B4XTable que no se pueden "tocar" en el B4XPage_Created, mientras que hay otras, que o las "tocas" ahí o no funcionan del todo.

Por ejemplo, para que el cambio de colores de los botones para navegar por las diferentes páginas funcione correctamente, hay que hacer el cambio sí o sí en el evento Created, mientras que los cambios en los colores de la grid, del panel, del searchview, etc, hay que esperar a hacerlo en el Appear, porque sino salta una excepción.

Según el ejemplo que adjunto. Sino hay posibilidad de cambio de pagina los botones debería de salir rojos, sino, verdes. Si el cambio de dichos colores se hace en el appear en lugar de en el created, ese cambio no funcionará correctamente. Y no acquirirán el nuevo color correctamente hasta que no sea neceario que el programa los repinte.

Para eso he puesto un botón para poder refrescar el contenido de la tabla y que unas veces tenga más filas y necesite repaginar.

Espero haberme explicado.

Adjunto el ejemplo que publicó Erel en su momento de 3 Páginas de B4X pages para que podáis comprobarlo. (Espero haberlo hecho bien, ya que nunca había utilizado la opción de exportar a zip).

Hay que ir hasta la página 3 del ejemplo para poder ver en ella la B4xTable y lo que comento. El resto está tal y como lo publicó Erel en su momento.
 

Attachments

  • B4AProject.zip
    17.7 KB · Views: 108

josejad

Expert
Licensed User
Longtime User
Lo he ejecutado, pero no he podido hacer pruebas. A ver si hoy o mañana puedo echarle un rato

En principio funciona como indicas
 
Top