Tengo una ventana en la que muestro una imagen. Quiero que el usuario pueda cambiar el tamaño de esta ventana, pero mantenerlo en la misma relación de aspecto que la imagen, por lo que no aparecen grandes áreas vacías en la ventana.Cambiar el tamaño de la forma manteniendo la relación de aspecto
lo que he intentado es algo como esto en el caso OnResize:
DragWidth := Width;
DragHeight := Height;
//Calculate corresponding size with aspect ratio
//...
//Calculated values are now in CalcWidth and CalcHeight
Width := CalcWidth;
Height := CalcHeight;
El problema con esto es, que las ventanas parpadea durante el cambio de tamaño arrastrando entre el tamaño de cambio de tamaño original y el calculado, ya que el evento OnResize se llama afaik después de que el cambio de tamaño ya está hecho (y pintado una vez).
¿Conoces alguna solución para tener un cambio de tamaño de relación de aspecto sin problemas?
Gracias por cualquier Ayuda.
Usted probablemente tiene esta resuelto ya, pero para cualquier otra persona interesada, sugeriría mantener la relación de aspecto de ClientWidth y clientHeight constante en lugar de cómo lo hice arriba. Esto, por supuesto, será un poco más complicado. – boileau
¿Puede explicar cómo aplicar este método un poco más? Soy muy nuevo en Delphi y estoy bastante confundido acerca de cómo configurar este controlador en el evento OnCanResize. Puedes darme un ejemplo ? Altamente apreciado. Gracias – Eduard
Seleccione el formulario en la ventana de diseño, busque la pestaña de eventos en el lado izquierdo, encuentre OnCanResize y haga doble clic en la celda blanca a la derecha del texto OnCanResize. (Utilizando Delphi 2009) – boileau