Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Problemas al centrar la parte que se ve de una imagen (https://www.clubdelphi.com/foros/showthread.php?t=83362)

aguml 08-06-2013 15:35:29

Problemas al centrar la parte que se ve de una imagen
 
El titulo es un poco lioso pero a ver si puedo explicarlo. Mi aplicacion tiene un TScrollBox y dentro un TImage el cual puedo mover de posicion y la idea es que al ampliar la imagen o encogerla se mantenga el centro de la parte de la imagen que se ve con el centro del scrollbox. Tengo esto:

Código:

int centroAncho = Image2->Left / 2 + Image2->Width / 2; //Centro del ancho de la imagen
int centroAlto = Image2->Top / 2 + Image2->Height / 2; //Centro del alto de la imagen
int centroScrollAncho = ScrollBox2->Width / 2; //Centro del ancho del ScrollBox
int centroScrollAlto = ScrollBox2->Height / 2; //Centro del alto del scrollbox


Entonces se me ocurrio que si sustituyo "centroAncho" por "centroScrollAncho" y luego despejo la ecuacion para obtener Image2->Left pues ya lo tendria y lo mismo para el Top y lo hice asi:

Código:

Image2->Left = (centroScrollAncho - Image2->Width / 2) * 2;
Image2->Top = (centroScrollAlto - Image2->Height / 2) * 2;

Algo hay mal o en el despeje o en el planteamiento porque no obtengo lo que deseo.
La imagen la muevo por dentro del scrollbox y no permito que el borde inferior de la imagen suba mas arriba del borde inferior del scrollbox excepto cuando la imagen tenga un alto menor que el del scrollbox y lo mismo con el borde derecho. Le sumo el alto de la imagen y el ancho porque si es mas grande que el scrollbox y la arrastro hacia arriba su Top será negativo y creo que asi obtengo la parte visible de la imagen pero algo falla en mi planteamiento ¿podeis ayudarme con eso?


La franja horaria es GMT +2. Ahora son las 08:12:40.

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