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 :

Ajustement des composants d'une forme selon la résolution de l'écran


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut Ajustement des composants d'une forme selon la résolution de l'écran
    salut tous le monde, je veux savoir comment ajuster tous les composants d'une forme selon n'importe quelle résolution d'écran afin d'éviter la déformation de la forme et ses composants.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Commence par bien définir Align et Anchors
    Cela va gérer les agrandissements les un par rapport aux autres !
    Ensuite avec ScaleBy, tu pourras zoomer une fenêtre
    En Vista, il y a une option pour lancer une application en 125 ou 150%

    A lire : Adapter un Form aux différentes résolutions d'écran
    Affichage soft correct avec l'agrandissement ergonomique W7
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Merci beaucoup mais pour scaleby comment je l'utilise est ce que je l'utilise pour chaque composant ?

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Juste la TForm, cela va recalculer tout l'intérieur et tous ses contrôles automatiquement, dans le OnCreate par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Self.ScaleBy(125, 100);
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    Merci beaucoup mais pour scaleby comment je l'utilise est ce que je l'utilise pour chaque composant ?
    ... je viens de tester : il suffit de faire appel à la méthode d'une procedure TForm1...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    procedure TForm1.Button1Click(Sender: TObject);
    begin     scaleBy(50,100);
    end;
    Ceci réduira tous les composants à 50%
    Mais faire gaffe aux fontes déclarées dans les propriétés des composants il faut qu'elles soient Scalables comme Arial par exemple.
    ... Mais bizarrement ce ScaleBy, s'il a réduit la taille de tous les composants, n'a pas modifié la taille de la fiche. !!!???

    A+.

    EDIT : ShaiLeTroll, comme d'hab a dégainé plus vite.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Merci à tous.

  7. #7
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    ... Mais bizarrement ce ScaleBy, s'il a réduit la taille de tous les composants, n'a pas modifié la taille de la fiche. !!!???
    Pas seulement, les polices qui ne s'appèltent pas 'Font' ne sont pas changées. Les tailles des colonnes des grilles (TStringGrid DBGrid) ne sont pas changées. Il y a trop de choses qui ne sont pas changées avec ScaleBy.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Et ça fonctionne bien dans le cas d'une fiche de taille fixe/figée ? J'ai quelques fiches non redimensionnables dont je force les propriétés ClientWidth et ClientHeight lors de l'affichage (à cause des bordures dont la taille varie selon le thème utilisé et la version de Windows), est-ce qu'elles seront aussi mises à l'échelle ?

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    A Nono40 : Il y a trop de choses qui ne sont pas changées avec ScaleBy.
    ... c'est bien dommage.

    A GoustiFruit : Et ça fonctionne bien dans le cas d'une fiche de taille fixe/figée ?
    ... avec BorderStyle:=bsDialog on a affaire à une fiche de taille fixe et figée et le test avec le bout de code suivant suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button1Click(Sender: TObject);
    begin     BorderStyle:=bsDialog;
              Self.scaleBy(75,100);
    end;
    ... réduit non seulement la taille de tous les composants, mais aussi la taille de la fiche.

    ... donc dans le cas d'une fiche qui n'a pas son BorderStyle:=bsDialog mais qu'on veut redimensionner il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button1Click(Sender: TObject);
    var         VieuxBS :  TBorderStyle;
    begin     VieuxBS:=BorderStyle;
              BorderStyle:=bsDialog;
              Self.scaleBy(75,100);
              BorderStyle:=VieuxBS;
    end;
    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  10. #10
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    En Delphi XE2, avec une application FireMonkey, il suffit simplement de mettre un TScaledLayout sur sa fiche, de l'aligner sur alClient, puis de mettre tous ses composants dans ce TScaledLayout...

  11. #11
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Merci Whiler pour ta réponse mais moi j'utilise Borland Delphi 7 Entreprise parce que je le trouve simple par contre Delphi XE je le trouve un peu compliqué.

  12. #12
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    L'interface a effectivement bien changé entre D7 & D2006...
    Mais elle n'est pas plus complexe et apporte plein de nouvelles fonctionnalités et le support des derniers OS/bases... (si je ne devais qu'en citer qu'une, le refactoring...)

  13. #13
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Merci beaucoup Whiler.

  14. #14
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 41
    Points
    41
    Par défaut
    Bonjour @ShaiLeTroll
    j'apprécie beaucoup vos réponses et soutiens sur les forums

    Citation Envoyé par ShaiLeTroll Voir le message
    Commence par bien définir Align et Anchors : tu peux nous citer un exemple ?
    Cela va gérer les agrandissements les un par rapport aux autres !
    Ensuite avec ScaleBy, tu pourras zoomer une fenêtre : comment faire en sort de détecter automatiquement la taille d l'écran et ajuster les composant automatiquement par rapport à cette résolution ?

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par LandGreen Voir le message
    Bonjour @ShaiLeTroll
    j'apprécie beaucoup vos réponses et soutiens sur les forums

    j'ai trouvé enfin la solution : installé le package ResizeKit_for_Delphi_5-10.1Berlin_Downloadly.ir après il suffit juste de mettre le composant et il s'en occupera de tout !
    merci à tous
    Images attachées Images attachées  

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

Discussions similaires

  1. Ajuster des composants dans une Form en plein écran
    Par jalalnet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/06/2011, 10h15
  2. changer le positionnement d'une fenêtre selon la résolution de l'écran
    Par rinuom99 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/09/2008, 17h44
  3. la mise en forme des composant d'une fenetre
    Par franckywood dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 03/08/2007, 23h02
  4. Centrer des composants dans une form?
    Par alg_dev dans le forum Delphi
    Réponses: 1
    Dernier message: 10/06/2007, 10h24
  5. Pb pour afficher une page selon la résolution de l'écran
    Par magic8392 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/10/2005, 11h35

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