Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 28-03-2012
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Poder: 24
marcial Va por buen camino
De hecho, y gracias a tu inestimable ayuda he mezclado tus códigos y he añadido algo hasta que ha quedado a mi gusto.
Reitero nuevamente mi agradecimiento porque sólo no podría haberlo hecho.

Código Delphi [-]
procedure TForm1.MMouseEvent(var Msg: TMsg; var Handled: Boolean);
{$J+}
const InZD: Boolean = False;
{$J-}
var
  P, PP: TPoint;
  WControl: TWinControl;
  G: TDBGrid;
  ZD, i: Integer;
begin
  WControl:= FindVCLWindow(Mouse.CursorPos);  // ¿ Esta sobre un TWinControl ?
  if Assigned(WControl) and (WControl is TDBGrid) then // ¿ Es tambien un TDBGrid ?
  begin
    P:= ScreenToClient(Mouse.CursorPos);  // Obtener posición del mouse
    G:= TDBGRid(WControl);
    ZD:=  GetSystemMetrics(SM_CXVSCROLL);  // Ancho zona desplazamiento
    if (P.X < G.Left + ZD) and not InZD then  // Ingresa zona desplazamiento izquierda
         for i:= G.Columns.Count-1 downto G.SelectedIndex do
                begin
                PP := ScreenToClient(Mouse.CursorPos);
                if pp.x <> p.x then exit;
                SendMessage(G.Handle, WM_HSCROLL, SB_LINELEFT, 0);
                sleep(100);
                end;
    if (P.X > G.Left + G.Width - ZD) and not InZD then  // Ingresa zona desplazamiento derecha
      for i:= G.SelectedIndex to G.Columns.Count-1 do  //Así no hay que ingresar en la zona de desplazamiento columna a columna
                begin
                PP := ScreenToClient(Mouse.CursorPos); 
                if pp.x <> p.x then exit;  //Chequea que la posición haya cambiado con respecto de la inicial para salir del buche

                SendMessage(G.Handle, WM_HSCROLL, SB_LINERIGHT, 0);
                sleep(100);  // Una pequeña pausa a gusto del consumidor para que el scroll no sea tan rápido
                end;
    InZD:= (P.X < G.Left + ZD) or (P.X > G.Left + G.Width - ZD); // ¿ En zona desplazamiento ?

  end;
end;
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DBGrid y Rueda(Scroll) del Mouse en Delphi 7 Emilio_82 Conexión con bases de datos 8 05-04-2013 09:23:41
Eliminar scroll horizontal (que no scrollbar) de dbgrid coso OOP 21 07-10-2008 19:29:13
barra de scroll en DBGrid macro32 Conexión con bases de datos 2 15-08-2008 07:53:58
Barra de Scroll de un DbGrid con Query gandalf_uy Varios 2 22-09-2005 18:09:34
DBGRID y SCROLL vtdeleon OOP 2 22-12-2004 14:34:59


La franja horaria es GMT +2. Ahora son las 19:01:23.


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
Copyright 1996-2007 Club Delphi