PDA

Ver la Versión Completa : Scrollbar Vertical desaparece del DBGRID


jmlifi
26-04-2007, 19:23:56
Cuando El DbGRid muestra muchas lineas, el Scrollbar vertical desaparece (No siempre).Si la Consulta a devuelto muchos registros y si te posicionas en el primer registro, el scrollbar no aparece. Tengo que utilizar la bola del ratón para ver todos los registros

¿a qué es debido?

marcoszorrilla
26-04-2007, 19:27:49
Nunca me ha ocurrido, puedes describir un poco más la situación, que tablas utilizas, con qué componentes te conectas... (algo de código).

Un Saludo.

jmlifi
27-04-2007, 12:56:08
trabajo bajo firebird 2 y conexion dbexpress.


Tengo en un From dos DBGrid:
DGGrid1 : muestra la cabecera de la ofertas.
DGGrid2 : muestra el detalle de las lineas de ooferta

Los dos dbGrid están relacionados. Si me muevo a una oferta en el DBGrid2 se muestran las lineas detalle de dicha oferta.

Hay lineas de detalle que contiene muchos registros(se necesita un scrollbar vertical, pero no aparece) que a primera vista no se ven. Utilizando el teclado y la rueda del ratón los registros se ven.

gluglu
27-04-2007, 14:25:15
A mi me ha pasado con maestros-detalles.

Cuando tienes dos DBGrid relacionados, al mover el cursor en el maestro, una vez si, una vez no, me muestra la barra de desplazamiento vertical del grid detalle.

Puedes perfectamente comprobarlo subiendo y bajando una vez en el maestro.

Es un bug supongo de Delphi. Lo he leido ya en otros varios foros. Al menos a mi me pasa con Delphi 2006 Vcl.Net y el TDBGrid estándar. Para mayor información utilizo Interbase 7.5, no sé si será con Interbase sólo o con otras bases de datos también.

La única manera y más eficiente de resolver esto, al menos concluyo yo, es redimensionar el DBGrid detalle cada vez que se produce un desplazamiento en el DBGrid maestro.

Siendo el DBGrid1 el maestro, el DBGrid2 el detalle, y los correspondientes DataSource's asociados :

procedure DataSource1DataChange(Sender: TObject; Field: TField);
begin
DBGrid2.Height := DBGrid2.Height + 1;
DBGrid2.Height := DBGrid2.Height - 1;
end;


Espero que te sirva de ayuda.

Saludos, ;)

LordRiper
27-04-2007, 20:54:43
A mi me pasa con cualquier consulta, no necesariamente maestro-detalle, ahun no encuentro solucion alguna, habra que probar la solucion esa de redimensionar, pero heredandola al DBGrid, para no tener que estarsela poniendo a todas las formas....