PDA

Ver la Versión Completa : OnMouseWheel en TPanel


metalfox6383
03-07-2006, 07:04:49
Hola:

Quiero que un objeto de tipo TPanel responda al evento OnMouseWheel, ya que lo que deseo es que cada vez que mueva la ruedita del mouse se incremente un valor numérico en su propiedad Caption (claro, haciendo antes las transformaciones string e integer correspondientes).

¿Cómo puedo lograr eso?

Gracias.

seoane
03-07-2006, 19:40:11
Seguro que hay metodos mejores, modificando la clase o capturando el mensaje del raton, pero aqui te dejo uno que, por lo menos, es curioso.

Suponemos que le Panel que quieres cambiar se llama Panel1, coloca este codigo en el evnto OnMouseWheel del formulario

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
if ChildWindowFromPoint(Handle,ScreenToClient(MousePos)) = Panel1.Handle then
Panel1.Caption:= IntToStr(StrToIntDef(Panel1.Caption,0) + (WheelDelta div Abs(WheelDelta)));
end;

metalfox6383
03-07-2006, 20:42:49
Interesante método. Voy a estudiarlo.

metalfox6383
03-07-2006, 21:15:15
Funciona Perfectamente. Gracias.