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

C++Builder Discussion :

Redimensionnement composants apr�s modif taille fenetre


Sujet :

C++Builder

  1. #1
    Membre confirm� Avatar de Revan777
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    87
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 87
    Par d�faut Redimensionnement composants apr�s modif taille fenetre
    Bonjour,
    j'ai une appli que je veux pouvoir agrandir en plein �cran mais je ne sais pas si je g�re bien le redimensionnement des composants de ma fiche.
    Il y a surement un moyen plus simple pour g�rer la mise en page apr�s changement de la taille de la fen�tre.
    Merci de m'�clairer l�-dessus.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    void __fastcall TForm1::FormResize(TObject *Sender)
    {
            // Redimensionnement des Memo
            Memo1->Left = 8;
            Memo2->Left = 8;
            Memo1->Width = Form1->Width - 24;
            Memo2->Width = Form1->Width - 24;
     
            if (Memo1->Width < 610)  // Taille d'origine
            {
                    Memo1->Height = 81;
                    Memo2->Height = 81;
                    Memo1->Top = 184;
                    Memo2->Top = 288;
                    Label8->Top = 272;
            }
            else  // Adaptation des tailles pour le plein écran
            {
                    Memo1->Height = 162;
                    Memo2->Height = 162;
                    Memo2->Top = Memo2->Top + 81;
                    Label8->Top = Label8->Top + 81;
            }
     
            // Redimensionnement des TCapture
            TCapture->Left = 8;
            TCapture->Width = Form1->Width - 24;
            TCapture2->Left = 8;
            TCapture2->Width = Form1->Width - 24;
    }

  2. #2
    Membre confirm�

    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    137
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 137
    Par d�faut
    Je n'�cris jamais une ligne de code pour g�rer un redimensionement.

    Il faut utiliser la propri�t� Align des composants (et des TPanel pour subdiviser la fen�tre)... Le truc bien avec Builder est que tu peux imm�diatement tester le redimensionement sans compiler.

  3. #3
    say
    say est d�connect�
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    1 176
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 1 176
    Par d�faut
    j'ajouterai qu'une bonne gestion des Anchors associ�e au Align devrait en effet r�pondre � la probl�matique.

  4. #4
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Salut,
    Je n'ai jamais vu une solution propre et facile � mettre en place pour adapter n'importe quelle application � n'importe quelle r�solution d'�cran.

    J'ai fait un petit code tr�s basique dans le genre:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
        int i;
        TControl *Component;
        double dx = (double)Screen->Width/(double)Form1->Width;
        double dy = (double)Screen->Height/(double)Form1->Height;
     
        Form1->Top    = 0;
        Form1->Left   = 0;
        Form1->Width  = Form1->Width  * dx;
        Form1->Height = Form1->Height * dy;
     
        for(i=0;i<Form1->ControlCount;i++)
        {
            Component         = dynamic_cast<TControl *>(Form1->Components[i]);
            Component->Width  = Component->Width  * dx;
            Component->Height = Component->Height * dy;
            Component->Top    = Component->Top    * dy;
            Component->Left   = Component->Left   * dx;        
        }
    Mais ca ne remet en place la taille et la position des composants, pas les structures internes (composants dans TPanels, cellules de grilles ...)

    Il faudrait construire une application en 600*800, et n'avoir qu'� augmenter la taille de ceux ci, car les alignements ne sont pas disponibles sur tous les composants et les ancres effaces parfois les petits composants lorsque la fen�tre est redimensionn�e plus petite.
    C'est tr�s difficile � g�rer.

  5. #5
    say
    say est d�connect�
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    1 176
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 1 176
    Par d�faut
    Citation Envoy� par bandit boy
    les ancres effaces parfois les petits composants lorsque la fen�tre est redimensionn�e plus petite.
    C'est tr�s difficile � g�rer.
    c'est clair... c bizarre que BCB pr�voit pas mieux que �a tout seul comme un grand

  6. #6
    Membre confirm� Avatar de Revan777
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    87
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 87
    Par d�faut
    Si j'ai bien compris, il n'y a pas de m�thodes particuli�res, seulement quelques bidouilles. Mon code fonctionne pas mal, je ne vais pas y toucher pour l'instant mais je vais �tudier l'utilisation des TPanel et Align pour voir.
    Merki.

Discussions similaires

  1. Modification taille de fenetre
    Par dealinfo dans le forum Outils
    R�ponses: 9
    Dernier message: 26/02/2014, 15h59
  2. modification des fenetres du composant ccfeedback
    Par cassandra dans le forum WinDev
    R�ponses: 3
    Dernier message: 26/02/2014, 08h36
  3. Taille d'un composant apr�s chargement
    Par Thread62 dans le forum GWT et Vaadin
    R�ponses: 2
    Dernier message: 03/06/2010, 01h21
  4. R�ponses: 2
    Dernier message: 03/05/2007, 16h58
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et ant�rieur
    R�ponses: 9
    Dernier message: 20/09/2002, 16h37

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