Ver la Versión Completa : Una más de lo DBGrid y su barra de desplazamiento
He visto en las búsquedas que varios de ustedes han tenido problemas con los DBGrid y sus barras de desplazamiento. A mi me ha estado pasando que desaparece la barra de desplazamiento vertical, y sin ser DBGrid en maestro-detalle.
gluglu comentó en un hilo que al parecer es un bug... ¿Alguno ya ha encontrado la solución para ese problema? A mi me lleva de cabeza...
gluglu
14-09-2007, 18:47:41
Sin ser Maestro-Detalle ?
Cuando te desaparece la barra, en simple ejecución del programa, o cuando haces alguna operación especial tal como cerrar y abrir el DataSet asociado ?
Gabriel
14-09-2007, 21:40:25
A mi tambien me ocurria
Me da verguenza, pero busque una solucion super chapuza, pero siempre fuciona
encima o debajo del DBGrid, pongo un panel y despues de mostrar datos, siempre hago, panel1.Heigth := panel1.Heigth + 1 ; panel1.Heigth := panel1.Heigth - 1.
Con lo cual obligo a redibujar el DBGrid.
Intente con paint i apis i demas y la verdad, no me acabo de funcionar.
Y finalmente, lo solucione de esta forma tan chapuzilla.
Si alguien sabe alguna mejor ??
Me la apunto
Saludos
Sin ser Maestro-Detalle ?
Efectivamente, sin ser Maestro-Detalle. Aunque reconozco que me pasa en forms con más de un DBGrid, no así en los que hay uno sólamente.
Cuando te desaparece la barra, en simple ejecución del programa, o cuando haces alguna operación especial tal como cerrar y abrir el DataSet asociado ?
Cierro y abro el Dataset en el evento OnShow y desde allí en adelante no me parecen las barras de desplazamiento. Bueno, aclaro, a veces sí aparecen y a veces no aparecen. Puedo haber terminado de ejecutar el programa y volverlo a ejecutar y ya me aparecen o viceversa. :confused:
A mi tambien me ocurria
Me da verguenza, pero busque una solucion super chapuza, pero siempre fuciona
encima o debajo del DBGrid, pongo un panel y despues de mostrar datos, siempre hago, panel1.Heigth := panel1.Heigth + 1 ; panel1.Heigth := panel1.Heigth - 1.
Con lo cual obligo a redibujar el DBGrid.
Intente con paint i apis i demas y la verdad, no me acabo de funcionar.
Y finalmente, lo solucione de esta forma tan chapuzilla.
Si alguien sabe alguna mejor ??
Me la apunto
Saludos
Chapuza será, pero si funciona... :rolleyes:
Pero, ¿como es eso de poner el panel encima del DBGrid? Te taparía el componente...
Gabriel
18-09-2007, 08:52:18
Bueno encima encima del componente no.
Pongo el Form, un panel, pequeño, o del tamaño que quieras en Aling al Top o AlBottom.
el Grid, por ejemplo Al Client, i al cambiar el panel de tamaño, el grid no me cambiaría, porque ja lo tengo AlClient,
Obligo a redibujar el Grid, y la barra sale de nuevo.
Piensa que si no, es un poco engorro, el echo de que tengas mas registros que mostrar y no este la barra del Grid, para poder navegar por ellos.
A mi me funciona siempre, desde hace años.
Antes busque alguna solución mas elegante, pero no obtuve respuestas.
Bueno encima encima del componente no.
Pongo el Form, un panel, pequeño, o del tamaño que quieras en Aling al Top o AlBottom.
el Grid, por ejemplo Al Client, i al cambiar el panel de tamaño, el grid no me cambiaría, porque ja lo tengo AlClient,
Obligo a redibujar el Grid, y la barra sale de nuevo.
Piensa que si no, es un poco engorro, el echo de que tengas mas registros que mostrar y no este la barra del Grid, para poder navegar por ellos.
A mi me funciona siempre, desde hace años.
Antes busque alguna solución mas elegante, pero no obtuve respuestas.
Pues nada, lo dicho, si funciona... adelante!!! Lo probaré, muchas gracias :)
gluglu
18-09-2007, 10:02:03
No había intervenido hasta ahora porque suponía que Gabo tenía conocimiento de este hilo (http://www.clubdelphi.com/foros/showthread.php?p=197838&highlight=DBGrid1#post197838) en el cual participé en su momento.
Entiendo que no hace falta ningún Panel ni nada. Basta con redimensionar el propio DBGrid para que vuelvan a aparecer la barra de Scroll vertical.
procedure DataSource1DataChange(Sender: TObject; Field: TField);
begin
DBGrid1.Height := DBGrid1.Height + 1;
DBGrid1.Height := DBGrid1.Height - 1;
end;
Saludos ;)
No había intervenido hasta ahora porque suponía que Gabo tenía conocimiento de este hilo (http://www.clubdelphi.com/foros/showthread.php?p=197838&highlight=DBGrid1#post197838) en el cual participé en su momento.
Entiendo que no hace falta ningún Panel ni nada. Basta con redimensionar el propio DBGrid para que vuelvan a aparecer la barra de Scroll vertical.
Código Delphi [-] (http://www.clubdelphi.com/foros/#)procedure DataSource1DataChange(Sender: TObject; Field: TField);
begin
DBGrid1.Height := DBGrid1.Height + 1;
DBGrid1.Height := DBGrid1.Height - 1;
end;
Saludos ;)
:eek: :eek: :eek: Sí, ya lo había leído, supongo que en ese momento no estaría muy lúcido de mente ya que pasé por alto la solución al problema... ¡Qué vergüenza! :o :p :o
Por lo que veo, la solución pasa por redibujar el DBGrid..
gluglu
18-09-2007, 10:13:49
gluglu comentó en un hilo que al parecer es un bug ...
Es que al leer esto por parte tuya dí por supuesto que habías leido el hilo y buscabas información adicional. ;)
Gabriel
18-09-2007, 23:42:47
Pregunto ?
Si el DBGrid esta en Aling AlClient, también se redibuja ?
El panel al estar en AlTop, si que realmente se hace mas grande o mas pequeño.
Panel1.Heigth := Panel1.Heigth + 1
Panel1.Heigth := Panel1.Heigth - 1
Pero bueno, todo es cuestión de probar, que probar eso no es mucha faena.
Ya os contare
Saludos
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.