Ir al contenido


Foto

Ctrl + Rueda ratón para dimensionar form y controls


  • Por favor identifícate para responder
6 respuestas en este tema

#1 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

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.
  • 0

#2 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 26 septiembre 2010 - 10:03

¿Y no existe algún componente para ello?... no me imagino el molesto refresh de los controles


Saludos!
  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

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,
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 27 septiembre 2010 - 08:55

Aquí hay un artículo sobre el uso de la rueda del ratón sin depender de los controles TWinControl.

Saludos.
  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 28 septiembre 2010 - 11:32

Hola

Intenta con esto



delphi
  1. procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  2.                 WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
  3. begin
  4.   Sender := ControlAtPos(ScreenToClient(MousePos), False, True);
  5.   WheelDelta := WheelDelta div WHEEL_DELTA;
  6.   Handled := True;
  7.   if not Assigned(Sender) or
  8.     not (ssCtrl in Shift) or
  9. not (Sender is TWinControl) then
  10.   begin
  11.     AlphaBlend := True;
  12.     WheelDelta := AlphaBlendValue + (WheelDelta * 5);
  13.     if (WheelDelta >= 0) and
  14.       (WheelDelta <= 255) then
  15.         AlphaBlendValue := WheelDelta;
  16.   end
  17.   else with Sender as TWinControl do
  18.   begin
  19.     Top := Top - WheelDelta;
  20.     Left := Left - WheelDelta;
  21.     Width := Width + (WheelDelta * 2);
  22.     Height := Height + (WheelDelta * 2);
  23.   end;
  24. end;



Salud OS
  • 0

#6 Desart

Desart

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 715 mensajes
  • LocationEspaña

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
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

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 :D :D :D, además, si no fuera por esas situaciones, como justificar la permanencia :p

Salud OS
  • 0




IP.Board spam blocked by CleanTalk.