Ctrl + Rueda ratón para dimensionar form y controls
Comenzado por
Desart
, sep 26 2010 01:06
6 respuestas en este tema
#1
Escrito 26 septiembre 2010 - 01:06
Pues eso en Windows Vista y Siete, si pulsamos la tecla Control y la rueda del ratón logramos que los navegadores pasen sus diseños a mayor o menor tamaño, lo cual muchas veces es una ventaja, así mismo en el escritorio, también te lo permite modificando el tamaño de los iconos.
Supongo, que se haría controlando si se ha pulsado la tecla control (hasta aquí llego)+ la rueda del ratón (no tengo ni idea de como controlarlo), luego mediante código aumentar proporcionalmente el form y los controles (y aquí estoy perdido.
Como siempre muchas gracias por vuestra ayuda.
P.D. Pienso que esto debería estar implantado por defecto en Delphi, ya que es una estupenda herramienta, para los minusvalidos con carencias visuales.
Supongo, que se haría controlando si se ha pulsado la tecla control (hasta aquí llego)+ la rueda del ratón (no tengo ni idea de como controlarlo), luego mediante código aumentar proporcionalmente el form y los controles (y aquí estoy perdido.
Como siempre muchas gracias por vuestra ayuda.
P.D. Pienso que esto debería estar implantado por defecto en Delphi, ya que es una estupenda herramienta, para los minusvalidos con carencias visuales.
#2
Escrito 26 septiembre 2010 - 10:03
¿Y no existe algún componente para ello?... no me imagino el molesto refresh de los controles
Saludos!
Saludos!
#3
Escrito 26 septiembre 2010 - 12:09
Para detectar el movimiento del ratón están los eventos onMouseWheel, onMouseWheelDown y onMouseWheelUp.
Y para el efecto refresh, está la posibilidad de aplicar double buffered. Aunque no sabría decir que tan rápido se comportará.
Saludos,
Y para el efecto refresh, está la posibilidad de aplicar double buffered. Aunque no sabría decir que tan rápido se comportará.
Saludos,
#5
Escrito 28 septiembre 2010 - 11:32
Hola
Intenta con esto
Salud OS
Intenta con esto
delphi
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); begin Sender := ControlAtPos(ScreenToClient(MousePos), False, True); WheelDelta := WheelDelta div WHEEL_DELTA; Handled := True; if not Assigned(Sender) or not (ssCtrl in Shift) or not (Sender is TWinControl) then begin AlphaBlend := True; WheelDelta := AlphaBlendValue + (WheelDelta * 5); if (WheelDelta >= 0) and (WheelDelta <= 255) then AlphaBlendValue := WheelDelta; end else with Sender as TWinControl do begin Top := Top - WheelDelta; Left := Left - WheelDelta; Width := Width + (WheelDelta * 2); Height := Height + (WheelDelta * 2); end; end;
Salud OS
#6
Escrito 28 septiembre 2010 - 12:03
Prometo probarlo pronto, pero ahora mismo estoy bloqueado con la trazabilidad de mi empresa en el nuevo programa, y cada vez que soluciono un problema sale otro, Bendita informática
#7
Escrito 28 septiembre 2010 - 12:05
Prometo probarlo pronto, pero ahora mismo estoy bloqueado con la trazabilidad de mi empresa en el nuevo programa, y cada vez que soluciono un problema sale otro, Bendita informática
Es el precio de la fama amigo José Luis , además, si no fuera por esas situaciones, como justificar la permanencia
Salud OS