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 :

Re-dimensionnement automatique de composants


Sujet :

C++Builder

  1. #1
    Membre habitu�
    Inscrit en
    Avril 2002
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 9
    Par d�faut Re-dimensionnement automatique de composants
    Je d�veloppe une appli qui est destin�e � des �crans qui ont des r�solutions diff�rentes. Est-ce que je peux me d�brouiller pour que la taille de mes boutons, edit.... s'adaptent � la r�solution de l'�cran?
    J'ai un d�but de solution avec le code:
    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
     
    //ajustement de la taille de l ecran
    #define MyWidth 1152.0
    #define MyHeight 864.0
     
    double wModif,hModif;
    wModif=Screen->Width /MyWidth;
    hModif=Screen->Height /MyHeight;
     
    TControl *pCtrl;
    for (int i=0;i<ComponentCount;i++)
    {
     try
     {
     pCtrl=(TControl *)Components[i];
     pCtrl->Width *= wModif;
     pCtrl->Height *= hModif;
     pCtrl->Left *= wModif;
     pCtrl->Top *= hModif;
     }
     catch (){};
    Mais le pb c'est que je risque de ne pas redimensionner les boutons cr��s dynamiquement...
    Est-ce que je suis sur la bonne voie ou compl�tement � l'ouest?
    Merci d'avance pour les r�ponses.
    A+

  2. #2
    JEG
    JEG est d�connect�
    Membre chevronn�
    Avatar de JEG
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 211
    Par d�faut
    bonne voie, mais il y a fonction de l'API windows qui permet de changer la r�solution de l'�cran. c'est peut-�tre plus simple (mais je ne me souviens plus quelle est cette fonction, d�sol�)

  3. #3
    Membre habitu�
    Inscrit en
    Avril 2002
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 9
    Par d�faut
    En fait je peux pas changer la r�solution de l'�cran... L'appli tourne sur un �cran LCD (VGA,1/4VGA)...
    Le pb avec mon code c'est que je loupe les composants cr��s dynamiquement! Est-ce que quelqu'un voit comment les prendre en compte?
    Merci d'avance.
    A+

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Par d�faut
    Je ne sais pas si la solution est aussi simple mais...

    Le code que tu nous montres est-il ant�rieur ou post�rieur � la cr�ation dynamique de tes composants ?
    Je pense qu'il doit �tre ant�rieur, sinon, je ne vois aucune raison pour qu'il ne les prenne pas en compte.

  5. #5
    Membre �m�rite
    Avatar de Geronimo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    156
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 156
    Par d�faut
    En effet
    A chaque fois que tu cr�e un composant dynamiquement, tu dois le redimenssionner.

  6. #6
    Membre habitu�
    Inscrit en
    Avril 2002
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 9
    Par d�faut
    Merci pour l'id�e Fred
    J'ai qu'� appeler ce code apr�s la cr�ation de chaque composant dynamique (je les cr�e presque tous ensemble). A priori �a devrait marcher...
    Merci pour l'aide.
    A+

  7. #7
    Membre habitu�
    Inscrit en
    Avril 2002
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 9
    Par d�faut
    Juste un d�tail : si j'ai un composant que je ne peux pas redimensionner (il y en a), il va me lever une exception d'o� le try catch. A ton avis qu'est-ce que je fais comme traitement de l'exception? En tout cas merci pour l'aide.
    A+

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Par d�faut
    Je ne sais pas si c'est � toi qu'une solution avait d�j� �t� apport�e sur ce forum il n'y a pas si longtemps.

    Il vaudrait mieux utiliser dynamic_cast pour faire une convertion de ton composant, tu n'aurais ainsi plus besoin du try/catch :


    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
    //ajustement de la taille de l ecran 
    #define MyWidth 1152.0 
    #define MyHeight 864.0 
     
    double wModif,hModif; 
    wModif=Screen->Width /MyWidth; 
    hModif=Screen->Height /MyHeight; 
     
    TControl *pCtrl; 
    for (int i=0;i<ComponentCount;++i) 
    { 
      if (pCtrl = <TControl *>(Components[i]))
      {
        pCtrl->Width *= wModif; 
        pCtrl->Height *= hModif; 
        pCtrl->Left *= wModif; 
        pCtrl->Top *= hModif; 
      }
    }

  9. #9
    Membre �clair�
    Inscrit en
    Mars 2002
    Messages
    97
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 97
    Par d�faut
    un petit oubli :

    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
    //ajustement de la taille de l ecran 
    #define MyWidth 1152.0 
    #define MyHeight 864.0 
     
    double wModif,hModif; 
    wModif=Screen->Width /MyWidth; 
    hModif=Screen->Height /MyHeight; 
     
    TControl *pCtrl; 
    for (int i=0;i<ComponentCount;++i) 
    { 
      if (pCtrl = [b]dynamic_cast[/b]<TControl *>(Components[i])) 
      { 
        pCtrl->Width *= wModif; 
        pCtrl->Height *= hModif; 
        pCtrl->Left *= wModif; 
        pCtrl->Top *= hModif; 
      } 
    }
    [Mod�ration, Alacazam : Pri�re d'utiliser la balise [CODE] qui am�liore nettement la lisibilit�, merci]

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Par d�faut
    Oui merci, j'aurais d� me relire.
    @+
    Fr�d�ric

  11. #11
    Membre habitu�
    Inscrit en
    Avril 2002
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 9
    Par d�faut
    Ok merci pour votre aide
    A+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Ouvrir une fenetre dimensionn�e automatiquement
    Par Nohman dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 17/05/2006, 20h07
  2. R�ponses: 2
    Dernier message: 24/01/2006, 18h12
  3. R�ponses: 3
    Dernier message: 29/08/2005, 15h33
  4. Dimensionner automatiquement une fenetre
    Par ch5oun dans le forum Agents de placement/Fen�tres
    R�ponses: 4
    Dernier message: 20/04/2005, 15h18

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