Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
Hola!.

Parece que he conseguido reproducir el error.

- Si aumento mucho la longitud del texto crea el problema.
- Si aumento el tamaño de la fuente, lo mismo.
- Si aumento mucho el número de las columnas, igual.

Aquí tenéis una pantalla del ejemplo funcionando correctamente, con la versión 3.6.2 de Gambas.
Versión estable.

 gridview_evento_data

Aquí tenéis el código fuente para que vayais cambiando:

- 1º El tamaño del texto. Luego dejarlo como estaba antes.
- 2º El tamaño de la fuente.Luego dejarlo como estaba antes.
- 3º El número de columnas.

No mezcléis los problemas, problemas uno a uno.  

Public Sub _new()
  
End

Public Sub Form_Open()
  
End

Public Sub GridView1_Data(Row As Integer, Column As Integer)
  
  Dim f As New Font
  Dim contenido As String
  
  contenido = "gambas es basic." & " " & Row & ", " & Column
  'contenido = "gambas es tambien basic." & " " & Row & ", " & Column
  
  f.Name = "Sans"  
  f.Size = 10
  'f.Size = 12
  
  GridView1.Data.Text = contenido
  
  If GridView1.Columns[Column].Width < f.TextWidth(GridView1.Data.Text) Then
    GridView1.Columns[Column].Width = f.TextWidth(GridView1.Data.Text)
  Endif
  
End

Public Sub Form_Activate()
  
  GridView1.Rows.Count = 3
  GridView1.Columns.Count = 3
  
  'GridView1.Rows.Count = 4
  'GridView1.Columns.Count = 4
  
End
 


Saludos

GridView_evento_Data2.tar.gz
Descripción:  
Descargar
Nombre del archivo: GridView_evento_Data2.tar.gz
Tamaño: 4.99 KB
Descargado: 40 veces
GridView_evento_Data2.tar.gz
Descripción:  
Descargar
Nombre del archivo: GridView_evento_Data2.tar.gz
Tamaño: 4.99 KB
Descargado: 40 veces
GridView_evento_Data2.tar.gz
Descripción:  
Descargar
Nombre del archivo: GridView_evento_Data2.tar.gz
Tamaño: 4.99 KB
Descargado: 40 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Miercoles, 19 Noviembre 2014, 19:45; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
Sin haberlo probado, me temo que es un error cambiar el ancho de la columna a mitad del evento data. Este evento rellena la celda, pero al mismo tiempo le cambias lo parámetros de la misma... lo mismo estoy equivocado, pero me temo que los tiros van por ahí.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
A ver si podéis confirmar que no os da problemas con la 3.6. Tenía que haber usado el foro de componentes o librerías.

He tenido que bajar a la 3.5 para hacerlo funcionar sin ningún problema.  Menos mal que aun estaba en la cache de Apt.
Lo he probado con tres equipos con Linux Mint 17 Mate  con la estable 3.6.2 y me da ese problema.

El efecto es como si la barra horizontal del GridView no se mostrase en ese momento.  
Ya que si esta apareciera, el área donde se muestra el texto en las columnas sería mayor y tendría mas zona donde dibujar internamente el DrawingArea.

El caso es:

 Que por otro lado es normal, los errores se detectan y se arreglan lo antes posible.
 En el caso de un profesional que tiene clientes con su software, una cosa así es un palo.
 Dejando congelada la versión de gambas, la suya y la de sus clientes.
 Vamos que se lo tiene que pensar dos veces para instalar una versión superior a la que tiene.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
shordi escribió: [Ver mensaje]
Sin haberlo probado, me temo que es un error cambiar el ancho de la columna a mitad del evento data. Este evento rellena la celda, pero al mismo tiempo le cambias lo parámetros de la misma... lo mismo estoy equivocado, pero me temo que los tiros van por ahí.


Es como algo infinito ,¿ verdad ?. Como si no acabara nunca y que posiblemente acabe en un desbordamiento.
La cuestión es que en la versión 3.5 haciendo lo mismo,  no falla en nada de lo comentado  

Otra cosa es que no sea la forma más correcta de hacerlo. Esto puede pasar.
¿ Qué método usarías para cambiar el tamaño de la columna del GridView si quieres mostrar campos de texto de una base de datos que cambian su longitud ?.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 20 Noviembre 2014, 11:42; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
Si le das a la columna un ancho de -1 se adapta al título. Si le activas la propiedad Expand, se adapta al tamaño del Gridview.
Si quieres modificar los tamaños a tu gusto, yo tengo dos funciones siempre una que formatea el aspecto y otra que rellena las celdas (la segunda es el _data, claro)

Saludos.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
Shordi:
If GridView1.Columns[Column].Width < f.TextWidth(GridView1.Data.Text) Then
GridView1.Columns[Column].Width = f.TextWidth(GridView1.Data.Text)
Endif

Citar:
Si quieres modificar los tamaños a tu gusto....

La idea es que se adapte al contenido que tenga las celdas, que provienen del resultado de una consulta...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
Citar:

La idea es que se adapte al contenido que tenga las celdas, que provienen del resultado de una consulta...

Sí si eso lo he entendido, lo que pasa es que no me parece muy correcto. Desconozco el gridview a fondo (no he estudiado el código fuente), pero parece como que el cambio del column.width dispara eventos draw en el drawing area y estos como que se le "amontonan"...
Veo mucho más rápido controlar el tamaño con una variable o array  y modificar el ancho una vez finalice el data, o algo así.
De todas formas, como tema tangencial, no me parece una buena solución para los Gridviews. Haciendo esto te arriesgas a "descolocar" todas las columnas según avances hacia delante o atrás. Imagina que tienes un gridview con nombres, direcciones y sueldos. La variación entre direcciones puede ser enorme, según eso, si estás siguiendo la columna de sueldos y al pulsar avance página la dirección de un registro es enorme, te encuentras con que el sueldo se te va de la pantalla por la derecha o, cuando menos, se te cambia de sitio...
por ello:
A) Dale un ancho concreto y pon a cierto la porpiedad wrap o
B) Calcula el ancho según el número de caracteres del campo o
C) Dale un ancho proporcional a la ventana (y el wrap o no, claro) o
D) (Lo que yo hago) a la columna que se le de un ancho fijo, que quede fijo y a la que no, que quede proporcional. Si el usuario amplia o disminuye el ancho con el ratón, el ancho queda fijo. Tienes un ejemplo en la clase xGrid de los controles "enganchados" que subí hace unos días. ( http://foro.gambas-es.org/viewtopic.php?f=5&t=4220 )

Pero para gustos lo colores, claro.
 



 
última edición por shordi el Jueves, 20 Noviembre 2014, 18:23; editado 2 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
Estuve jugando con el Scrollbar del Gridview y probé a cambiar las propiedades de esta.

- Si no le doy posibilidad de que se muestre la barra horizontal. No existe el problema . ( No vemos los registros).
Mientras no este activa para mostrar la barra si hay un desplazamiento horizontal, no hay problema.

- Si uso el componente gb.gui o gb.gtk la barra se muestra, pero hay errores en la consola.

Citar:

(GridView_evento_Data2:3160): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed


Ese error es constante por cada actualización del evento Data. No se produce error del DrawingArea.

- Si uso el componente gb.gtk3. No hay salida de errores por la consola y no se produce el error del DrawingArea.
La idea es usar qt4...

Gracias Jorge, probare tus soluciones.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
Shell:

Citar:
La idea es usar qt4...

Yo uso desde hace mucho tiempo (por lo menos 2 años), el componente gb.qt4.
Con  gb.gtk he tenido  problemas muy extraños que se resolvian "milagrosamente" usando gb.qt4. Por eso en todas mis aplicaciones uso gb.qt4.

Shordi:
Citar:
A) Dale un ancho concreto y pon a cierto la porpiedad wrap o
B) Calcula el ancho según el número de caracteres del campo o
C) Dale un ancho proporcional a la ventana (y el wrap o no, claro) o
D) (Lo que yo hago) a la columna que se le de un ancho fijo, que quede fijo y a la que no, que quede proporcional.

Son interesantes las opciones que das.
Incluso se podria crear una método que tenga de parametro estas opciones, y asi el programador, pueda elegir el que mejor se adapte a los campos que tenga que mostar en el gridview.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Con El Evento Data De GridView. DrawingArea Is Being Drawn 
 
¿ Conocías el evento Draw del GridView ?.

Evento Draw de GridView

No soluciona el problema, ¿ es casi como el data pero más ampliado ?.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Mas Sobre GridView Heredado Y Su Evento Data shordi Controles/Librerías/Componentes 6 Martes, 05 Octobre 2010, 11:34 Ver último mensaje
shordi
No hay nuevos mensajes Evento Data, Colorear Celdas Y Ver Texto Shell General 13 Sabado, 28 Noviembre 2015, 14:37 Ver último mensaje
Shell
No hay nuevos mensajes Como Controlar El Evento Data De Gridview? vr_rv Bases de Datos 6 Jueves, 23 Junio 2016, 22:34 Ver último mensaje
jguardon
No hay nuevos mensajes Evento Data imagomundi Controles/Librerías/Componentes 2 Lunes, 06 Abril 2020, 02:04 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron