IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

redimensionner paintbox selon form.resize


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 78
    Points
    78
    Par défaut redimensionner paintbox selon form.resize
    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 ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    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. #2
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Utilise la fonction Round, qui permet de passer des flotants vers les entiers.
    Ou la propriété Align de ton composant, il y a une valeur personnalisée, regarde de ce côté.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 67
    Points : 102
    Points
    102
    Par défaut
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PaintBox1.Width:=round(PaintBox1.Width*width_originale_form/Form1.Width);
    tu mes le round le plus tard possible
    "Ce n'est pas parce que les choses sont difficiles qu'elles nous font peur, c'est parce qu'elles nous font peur qu'elle sont difficiles"

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Au lieu d'utiliser / utilise la fonction Div qui est spécifique pour les divisions d'entiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PaintBox1.Width:=PaintBox1.Width*width_originale_form Div Form1.Width;
    Puis sinon comme l'a dit plus haut Matt2094, utilise la propriété Align du Paintbox, si tu la mets à AlClient elle prendra la totalité de l'espace possible de la form et en plus s'étirera ou rétréciera selon la taille de la form.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 78
    Points
    78
    Par défaut
    merci pour vos aides. Pour ceux que ça intéresse, il me fallait aussi redimensionner le bitmap que j'avais dans le paintbox donc voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    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 à tous
    Seb

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/04/2011, 23h29
  2. redimensionnent d'une forme
    Par michel71 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 14/08/2007, 15h51
  3. Redimensionnement dans une form
    Par MottetCCSF dans le forum Composants VCL
    Réponses: 1
    Dernier message: 06/08/2007, 10h34
  4. Comment redimensionner automatiquement une Form ?
    Par nek_kro_kvlt dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2005, 23h05
  5. Type de redimensionnement d'une form
    Par Sub0 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 05/12/2003, 21h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo