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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola marcial.

Primero que nada, me alegro que el código te haya servido como base .

Ahora que veo que deseas un scroll continuo con retraso de tiempo, te pongo otra alternativa más simple:
Código Delphi [-]
procedure TForm1.MMouseEvent(var Msg: TMsg; var Handled: Boolean);
var
  P: TPoint;
  WControl: TWinControl;
  G: TDBGrid;
  ZD: Integer;
begin
  WControl:= FindVCLWindow(Mouse.CursorPos);
  if Assigned(WControl) and (WControl is TDBGrid) then
  begin
    P:= ScreenToClient(Mouse.CursorPos);
    G:= TDBGRid(WControl);
    ZD:=  GetSystemMetrics(SM_CXVSCROLL);
    while (P.X >= G.Left) and (P.X <= G.Left+ZD) do
    begin
      P:= ScreenToClient(Mouse.CursorPos);
      SendMessage(G.Handle, WM_HSCROLL, SB_LINELEFT, 0);
      Sleep(250);
    end;
    while (P.X >= G.Left+G.Width-ZD) and (P.X <= G.Left+G.Width) do
    begin
      P:= ScreenToClient(Mouse.CursorPos);
      SendMessage(G.Handle, WM_HSCROLL, SB_LINERIGHT, 0);
      Sleep(250);
    end;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 30-03-2012
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Poder: 24
marcial Va por buen camino
Muchas gracias. Como siempre, mejor que el mio.
Responder Con Cita
  #3  
Antiguo 30-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por marcial Ver Mensaje
Muchas gracias. Como siempre, mejor que el mio.
Hola.

Yo no diría mejor... sólo un modo diferente que dá un código más simple.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 30-03-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 18
lmpadron Va por buen camino
Saludos ecfisa, podría traducir este código a c usted o alguien mas? Seria magnífico !!!
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #5  
Antiguo 30-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por lmpadron Ver Mensaje
Saludos ecfisa, podría traducir este código a c usted o alguien mas? Seria magnífico !!!
Hola impadrón.

Código:
void __fastcall TForm1::MMouseEvent(TMsg &msg, bool &Handled){
TPoint tp;
int i;
  TWinControl *wc =  FindVCLWindow(Mouse->CursorPos);
  if (wc != NULL) {
    tp = Form1->ScreenToClient(Mouse->CursorPos);
    TDBGrid *g = static_cast<TDBGrid*> (wc);
    int ZD = GetSystemMetrics(SM_CXVSCROLL);
    while(tp.x >= g->Left && tp.x <= g->Left+ZD) {
      tp = Form1->ScreenToClient(Mouse->CursorPos);
      SendMessage(g->Handle, WM_HSCROLL, SB_LINELEFT, 0);
      Sleep(250);
    };
    while (tp.x >= g->Left+g->Width-ZD && tp.x <= g->Left+g->Width) {
      tp = Form1->ScreenToClient(Mouse->CursorPos);
      SendMessage(g->Handle, WM_HSCROLL, SB_LINERIGHT, 0);
      Sleep(250);
    };
  }
};

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Application->OnMessage = MMouseEvent;
}

Saludos.

PD: No me trates de usted. (la próxima vez que lo hagas te traduzco a Visual Basic )
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-03-2012 a las 16:04:32.
Responder Con Cita
  #6  
Antiguo 30-03-2012
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Poder: 24
marcial Va por buen camino
Hola de nuevo:
Parece que la felicidad nunca es completa.
Resulta que aplico el código y va perfectamente pero....cuando en el programa existe un componente Application Event para controlar la rueda del ratón con este código en el evento On Message:
Código Delphi [-]
 if Msg.message = WM_MOUSEWHEEL then
   begin
     Msg.message := WM_KEYDOWN;
     Msg.lParam := 0;
     if Msg.wParam > 0 then
       Msg.wParam := VK_UP
     else
       Msg.wParam := VK_DOWN;
     Handled := False;
   end;

Resulta que el maravilloso código de ecfisa no funciona.

¿Habría alguna manera de poder utilizar los dos a la vez?
Responder Con Cita
  #7  
Antiguo 30-03-2012
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Poder: 24
marcial Va por buen camino
Vaya, si que se puede. Lo dejo por si a alguien le interesa:

En las Private Declarations
Código Delphi [-]
    { Private declarations }
    procedure DBGrid1PillaLaRueda(var Message: TMessage);
       procedure MMouseEvent(var Msg: TMsg; var Handled: Boolean); {SCROLL DEL DBGRID}


Despues de los Uses y antes de {SR *.DFM}
Código Delphi [-]
type
TomaInvento = class(TControl);


El el OnCreate de la Form
Código Delphi [-]
DBGrid1.WindowProc := DBGrid1PillaLaRueda;
   Application.OnMessage := MMouseEvent; {PARA EL SCROLL DEL DBGRID}

El procedure del Scroll Vertical
Código Delphi [-]
procedure TForm3.DBGrid1PillaLaRueda(var Message: TMessage);
 var
   Cuanto : short;
 begin

   if (Message.Msg = WM_MOUSEWHEEL) then begin
     Cuanto:=HIWORD(Message.WParam);
     Cuanto:=Cuanto div 120;
     DbGrid1.DataSource.DataSet.MoveBy(-Cuanto);

   end else TomaInvento(DBGrid1).WndProc(Message);
 end;

Y por último, después del procedure Vertical, el procedure de Ecfisa para el Scroll Horizontal

Así tenemos los Scroll Vertical y Horizontal sin usar las Barras de Desplazamiento

Muchas gracias
Responder Con Cita
Respuesta


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 01:12:21.


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