Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ayuda TopRow Dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=63501)

peripla 17-02-2009 14:41:08

Ayuda TopRow Dbgrid
 
Hola a todos, tengo el problema de que cuando hago un top row en un dbgrid, lo hace bien, pero cuando quiero volver a mostrar la primera fila moviendo con los cursores o con el scroll no puedo ver las filas anteriores al top row.
Gracias

amadis 02-03-2009 13:27:48

¿como estas implementando el top row?

¿estas tomando un Dbgrid como Stringgrid?. porque Toprow es un propiedad de los CustomGrid (StringGrid y DrawGrid). Dbgrid es una grilla virtual que muestra el contenido de un DataSet.

¿es sobre una tabla filtrada?

Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
  Var
     R : Integer;
 
  begin
     R :=TStringGrid(DbGrid1).Row;
     TStringGrid(DbGrid1).TopRow := R;
   end;


De esa forma guardas y re-estableces toprow.


Por otro lado. Prueba también agregar al formulario principal de tu proyecto (si es MDI) o bien al form donde tienes la grilla un TApplicationEvens con este código.

Código Delphi [-]
procedure TFPrincipal.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
var
   i: SmallInt;
begin
   if Msg.message = WM_MOUSEWHEEL then
   begin
     Msg.message := WM_KEYDOWN;
     Msg.lParam := 0;
     i := HiWord(Msg.wParam) ;
     if i > 0 then
       Msg.wParam := VK_UP
     else
       Msg.wParam := VK_DOWN;

     Handled := False;
   end;
end;

Con lo anterior he solucionado detalles de repintado de grids y sobretodo problemas de repintado de grids cuando se usa el scroll del mouse.


La franja horaria es GMT +2. Ahora son las 07:57:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi