Redimensionner paintbox selon form.resize

Résolu
seba31stien Messages postés 51 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 25 juillet 2006 - 12 mai 2006 à 12:58
seba31stien Messages postés 51 Date d'inscription lundi 13 juin 2005 Statut Membre 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

2 réponses

seba31stien Messages postés 51 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 25 juillet 2006 1
12 mai 2006 à 15:13
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
3
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
12 mai 2006 à 13:33
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
0
Rejoignez-nous