Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2004
omardelahoz omardelahoz is offline
Registrado
 
Registrado: ene 2004
Posts: 5
Poder: 0
omardelahoz Va por buen camino
agregar o cargar un evento a un RxDBLookupCombo

hola que tal....

haber estoy usando un componente RxDBLookupCombo conectado a una base de datos... trabajo con delphi 6.... el resultado son unos 1000 campos que bienen ordenados... la persona encargada de utilizar esta parte del programa me pide que cuando se despliegue el combo y se mueva la ruedita del mouse el combo se mueva... asi como se hace en word con la reuedita...

estuve averiguando y encontre que existe el evento MouseWheel, MouseWheelDown, MouseWheelUp... lo probe utilizandolo en un reporte y funciono ala perfeccion... pero cuando fui al RxDBLookupCombo sorpresa... no tiene el evento onmousewheel......

como hago para que pueda utilizar ese evento en el RxDBLookupCombo ????
o como hago para que se mueva con la ruedita????


este es el codigo que utilizo para el reporte




Código:
procedure TPrevi.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
var
  Info: TScrollInfo;  
begin
Info.cbSize := SizeOf( Info );
  Info.fMask := sif_Pos;
  GetScrollInfo( Preview.Handle, sb_Vert, Info );
Info.nPos := Info.nPos + Mouse.WheelScrollLines;
 //showmessage(inttostr(Info.nPos));
if Info.nPos >= 0 then
  begin
    SendMessage( Preview.Handle, wm_VScroll, MakeLong( sb_ThumbPosition,
                                               Info.nPos ), 0 );
    SetScrollInfo( Preview.Handle, sb_Vert, Info, True );
  end;
Handled := true;

end;

procedure TPrevi.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
var
  Info: TScrollInfo;
begin
Info.cbSize := SizeOf( Info );
  Info.fMask := sif_Pos;
  GetScrollInfo( Preview.Handle, sb_Vert, Info );
Info.nPos := Info.nPos - Mouse.WheelScrollLines;
 //showmessage(inttostr(Mouse.WheelScrollLines ));
if Info.nPos >= 0 then
  begin
    SendMessage( Preview.Handle, wm_VScroll, MakeLong( sb_ThumbPosition,
                                               Info.nPos ), 0 );
    SetScrollInfo( Preview.Handle, sb_Vert, Info, True );
  end;
Handled := true;
end;
Responder Con Cita
  #2  
Antiguo 07-07-2004
tolomeo tolomeo is offline
Miembro
 
Registrado: jul 2004
Posts: 10
Poder: 0
tolomeo Va por buen camino
Post Facil

Si no te he entendido mal creo que lo que deseas es anadir el evento OnMouseWheel al RxDbLookupCombo , si es asi lo tienes muy facil. Lo puedes de dos formas:

Puedes crear un nuevo objeto que herede de RxDbLookupCombo y añadirle
esa propiedad a tu objeto de la siguiente manera :

Código Delphi [-]
 TMyRxDbLookupCombo = class(RxDbLookupCombo)
 published
    property OnMouseWheel;
 end;

O la otra forma es no heredar y coger la unidad de las RxLib que contiene el RxDbLookupCombo y añadirle tu esa linea, y despues recompilar las RxLib para que te contemple la nueva propiedad. Esto es asi de sencillo porque esta propiedad esta declarada como protected cuando se define el componente TControl, y como TRxDbLookupCombo hereda de este, realmente contiene esa propiedad, lo unico que hacemos con esto es hacerla publica tanto en tiempo de ejecucion como de diseño con la directiva published.

Espero que te sirva.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 20:39:27.


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