Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   rueda central del raton, no vaaa (https://www.clubdelphi.com/foros/showthread.php?t=18746)

User_baja1 22-02-2005 09:29:32

rueda central del raton, no vaaa
 
Hola a todos,
en los clientes donde tengo instalado el programa hecho con D5, no va bien la rueda central del raton, en cambio en mi ordenador de desarrollo si.
¿sabeis por que?

Os comento:
cuando sobre un grid normal, desplazo la rueda del raton, se mueve el foco y cuando ha llegado al final de la parte visible, entonces se mueve la barra de scroll del grid,... normal no??

Pues cuando lo hacen en los usuarios en sus terminales, no funciona. He probado a cambiar las opciones del mouse en el panel de control, pero no funciona.

¿Alguna idea?
Gracias.
David.

roman 22-02-2005 09:36:44

De hecho el DBGrid no maneja correctamente la rueda del ratón. Te recomiendo que uses el RXDbGrid de las librerías RX. También puedes usar esta solución.

// Saludos

User_baja1 23-02-2005 11:01:39

Vale, probare las RXLib, pero.... estan soportadas en delphi 2005?
, ya que mas tarde compilare el programa con D2005.

Cita:

Empezado por roman
De hecho el DBGrid no maneja correctamente la rueda del ratón. Te recomiendo que uses el RXDbGrid de las librerías RX. También puedes usar esta solución.

// Saludos


crack_neon 17-05-2006 01:28:17

y para el form???
 
Hola, yo tengo el problema pero con los formularios, podrian orientarme para que reconosca la ruedita?

De antemano gracias.

vtdeleon 17-05-2006 02:49:17

Saludos

Cita:

Hola, yo tengo el problema pero con los formularios, podrian orientarme para que reconosca la ruedita?
Deberias iniciar otro hilo. Y en ese hilo darno mas detalles, lo que escribe no deja muy claro lo que deseas.

crack_neon 08-06-2006 22:37:00

El problema del dbgrid lo solucione con esto:

En las Private declarations agregue un procedimiento (PillaLaRueda) con el nombre del dbgrid antecediendolo.

Código Delphi [-]
 
{ Private declarations }
procedure DBGClientePillaLaRueda(var Message: TMessage);

Y debajo de la implementación :

Código Delphi [-]
 
implementation

{$R *.dfm}

type
   TomaInvento = class(TControl);

procedure TfrmClientes.DBGClientePillaLaRueda(var Message: TMessage);
var
  Cuanto : short;
begin
  if (Message.Msg = WM_MOUSEWHEEL) then begin
    Cuanto:=HIWORD(Message.WParam);
    Cuanto:=Cuanto div 120;
    DBGCliente.DataSource.DataSet.MoveBy(-Cuanto);
    frmClientes.DBGClienteCellClick(nil);
  end else TomaInvento(DBGCliente).WndProc(Message);
end;

Por ultimo en el FormCreate se le asigna al dbgrid el procedimiento.

Código Delphi [-]
procedure TfrmClientes.FormCreate(Sender: TObject);
begin
  DBGCliente.WindowProc := DBGClientePillaLaRueda;
end;

Nota: soy novato, disculpen mi mala explicación, pero pueden estar seguros que el código funciona, ojala les sea de utilidad.

Mi problema con poder usar la ruedita en un Form ya lo solucione:

En el evento OnMouseWheelDown del Form escribi:

Código Delphi [-]
FormCrearCocina.ScrollBy(0,-20);

En el evento OnMouseWheelUp del Form escribi:

Código Delphi [-]
frmCrearCocina.ScrollBy(0,20);

Nuevamente les mando un saludo.

Alejandro73 09-06-2006 01:01:05

Esto lo saque de la pagina trucos delphi
 
Hola,

Yo utilice este codigo y funciona perfectamente, lo obtuve de la pagina de trucos delphi, ahi va

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, Grids, DBGrids, DB, DBTables;

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
  procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure DBGrid1PillaLaRueda(var Message: TMessage);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

type
  TomaInvento = class(TControl);

procedure TForm1.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;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DBGrid1.WindowProc := DBGrid1PillaLaRueda;
end;

end.

espero te resulte, lo que esta destacado es to que tienes que agregar al formulario.

Buena Suerte

Alejandro
Chile

dec 09-06-2006 01:15:41

Hola,

Cita:

(...) lo que esta destacado es to que tienes que agregar al formulario.
Te pido disculpas. No me he dado cuenta de esto que has dicho y he editado tu mensaje para encerrar el código fuente en sus correspondientes etiquetas. Como ves el resultado es muy bueno, claro que,... se ha perdido lo que habías destacado en negrita en el código...

Si no te importa vuélvelo a hacer, pero, mantén encerrado entre las etiquetas [ DELPHI ] y [ / DELPHI ] el código fuente. Te pido de nuevo disculpas por el desaguisado, que no era mi intención.

Alejandro73 09-06-2006 16:22:41

No te preocupes por la corrección
 
Ok.

No hay problema en que editaras el mensaje, pues creo que esto se trata de ayudarnos mutuamente y si cometi un error, es saludable corregirlo para asi no confundir a quien lo revise.


Alejandro
Chile

Cañones 17-06-2011 01:05:47

Lo voy a probar.
Gracias por el aporte.
Saludos.


La franja horaria es GMT +2. Ahora son las 14:33:25.

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