Mon but initiale n'est pas de faire un zoom sur une image affichée à l'écran mais d'afficher l'image en taille réelle d'une coté avec des scrollBar afin de me déplacer dedans comme dans paint (C'est fait) et d'afficher un rectangle symbolisant le TImage dans le TPicture. Il faut que le rectangle se déplace en même temps que le déplacement des scrollbars et pouvoir faire glisser ce rectangle à la souris qui fera afficher l'image en taille reelle et deplassement des scrollbars.
Calcul des max des scrollbars:
1 2
| ScrollBarImg1B.Max := Img1.Picture.Width - Img1.Width - 1;
ScrollBarImg1G.Max := Img1.Picture.Height - Img1.Height - 1; |
J'ai mis un TShape dont je calcule la taille
Shape.Width := Trunc(Img1.Width / Img1.Pidture.Width * Img2.Width * Ratio);
Le ratio étant le ratio pour garder les proportions (Ratio = 1 pour la largeur, Ratio = (4000 * 500) / (6000 * 500) = 2/3 pour la hauteur)
J'ai plus de mal avec Le shape.Left et Top en fonction du scrollBarX.Position et max mais ca va s'arranger.
Le problème est de déplacer le TShape à la souris et la vitesse de déplacement du TShape (Elle saccade lors du mouvement des scrollbars).
Mon 2 ème objectif est en effet de pouvoir dézoomer, de modifier la shape, les max des scrollbars en consequence et géré le comportement.
Partager