Redimensionner paintbox selon form.resize [Résolu]

Messages postés
51
Date d'inscription
lundi 13 juin 2005
Dernière intervention
25 juillet 2006
- 12 mai 2006 à 12:58 - Dernière réponse :
Messages postés
51
Date d'inscription
lundi 13 juin 2005
Dernière intervention
25 juillet 2006
- 12 mai 2006 à 15:13
Bonjour,
je souhaiterais redimensionner les dimensions de ma paintbox en fonction de la taille de la form.
si l'utilisateur divise par deux la fiche, alors la paint box devra être diviser par deux.
j'ai essayé avec l'évènement onresize mais comme les dimensions ne sont que des entiers alors les rapports de dimensions ne sont que 1,2,3 ...

procedure TForm1.FormResize(Sender: TObject);
begin
PaintBox1.Width:=PaintBox1.Width*round(width_originale_form/Form1.Width);// 781
PaintBox1.Height:=PaintBox1.Height*round(height_originale_form/Form1.Height);//
PaintBox1Paint(self);
end;

merci
Seb
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
51
Date d'inscription
lundi 13 juin 2005
Dernière intervention
25 juillet 2006
- 12 mai 2006 à 15:13
3
Merci
merci pour anchors, je ne connaissais pas , ça me sera utile pour la suite. voici comme j'ai fait :
if (Form1.Width/750<Form1.Height/600)
then coef_retreci:=Form1.Width/750 // je prends pour coef
else coef_retreci:=Form1.Height/600; // le plus grand des redimensionnements

PaintBox1.Width:=round((500*coef_retreci));// 781
PaintBox1.Height:=round((500*coef_retreci));// 532
BmpM.Width:= PaintBox1.Width;
BmpM.Height:= PaintBox1.Height;

Rafraichir_carte; // j'appelle ma fonction qui redessine le bitmap sur le
//paintbox

Merci seba31stien 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de seba31stien
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
- 12 mai 2006 à 13:33
0
Merci
Tu peux essayer ceci :

tu calcules au départ le rapport entre la hauteur et la largeur de ton PaintBox :
PbScale:= PaintBox1.Height / PaintBox1.Width;

dans la propriété AnChors de PaintBox1 : Left, Top et Right = true

dans l'événement Form1Resize :
with PaintBox1 do Height:= Round(Width * PbScale);

A +
Thierry
Commenter la réponse de ThWilliam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.