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 :

Composants s'ajustant automatiquement aux dimensions de la fenêtre


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 71
    Points : 19
    Points
    19
    Par défaut Composants s'ajustant automatiquement aux dimensions de la fenêtre
    Bonjour,
    je voudrais savoir SVP comment redimensionner la forme automatiquement avec les composants pour qu'ils soient justes avec la taille de l'écran ?
    Cordialement,

    Nom : 1.JPG
Affichages : 1629
Taille : 49,4 Ko
    Nom : 2.JPG
Affichages : 1532
Taille : 53,1 Ko

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour ! La question m'a paru ambiguë, parce que vous parlez de la taille de l'écran, mais avec l'aide de votre capture d'écran, ce que je comprends, c'est que vous voudriez connaître la méthode à suivre pour que les composants de la fenêtre se replacent et se redimensionnent automatiquement en fonction de la taille de la fenêtre. J'ai bon ?
    Je pense que c'est une question que tout le monde s'est posée et qu'il doit y avoir des réponses un peu partout. J'avoue que personnellement je n'ai pas des idées très claires sur la question.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Sympa Roland d'avoir modifié Titre et Question et d'avoir décodé la demande , je dois avouer n'avoir rien compris en première lecture (avant correction) et n'y avoir rien compris !
    Je présume aussi qu'il ne s'agit pas d'un développement FMX (trop simple de poser un (seul) TScaledLayout pour faire tout le boulot) mais d'un bon vieux Delphi 7 ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Je présume aussi qu'il ne s'agit pas d'un développement FMX (trop simple de poser un (seul) TScaledLayout pour faire tout le boulot) mais d'un bon vieux Delphi 7 ?
    Je présume aussi. Alors justement, comment créer un "squeille de léyoute" avec les composants standards de la VCL ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    pour adapter la taille et la position des composants de la Form sous D7, le mieux est de faire des calculs en fonction de clientWidth et ClientHeight dans le Resize de la fenêtre ?

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       Stringrid1.left := 10 ;
       Stringrid1.Width := Form1.ClientWidth - 20 ;
       ...
       //  Largeur des colonnes à adapter
       ...
    Il faut aussi mettre l'ancrage de certains boutons (Anchors) à akBottom et akRight (ceux du bas en général)

    A+
    Charly

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 71
    Points : 19
    Points
    19
    Par défaut
    Merci @Roland Chastain vous avez raison j'ai mal poser ma question
    @SergioMaster c'est delphi 2010 est ce que je peux convertir ce code de delphi 2010 en FMX ?
    Merci @Charly910 pour votre réponse, ce code est juste pour dbgrid ou peux marcher avec tous les composant ?
    merci d'avance ?

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Citation Envoyé par mrsimo7
    c'est delphi 2010 est ce que je peux convertir ce code de delphi 2010 en FMX ?
    réponse de normand OUI il est possible de transformer un programme VCL en programme FMX (en utilisant Mida proposé en version "lite" avec Delphi XEn ), NON à mon avis ce n'est pas forcément une bonne idée d'utiliser cet outil, écrire en FMX apporte beaucoup de choses (mais aussi pas mal de prises de tête) nouvelles dont les livebindings (obligatoires dès qu'il y a base de données)

    Citation Envoyé par Roland Chastain
    comment créer un "squeille de léyoute" avec les composants standards de la VCL
    Je croyais avoir écrit dans mon post qu'il fallait utiliser les propriétés Anchors des composants ainsi qu'ajouter pas mal de Panels pour remplacer le ScaledLayout mais j'ai du faire quelques tests pour vérifier (vérifier que Anchors existait, vérifier ce que cela faisait sur les TEdit etc...)
    et j'ai oublié d'Editer mon post par la suite (après tout c'était dimanche )
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    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 452
    Points : 24 863
    Points
    24 863
    Par défaut
    En VCL, il n'y a rien de plus simple, il suffit de joueur avec les Anchors ou des TPanel imbriqués en jouant sur Align comme l'évoque SergioMaster
    Ou encore du TGridPanel qui existe dans D2010

    Align cela existe depuis au moins Delphi 3 (si ce n'est pas avant) et il fallait les imbriquer entre les alClient, alTop, alBottom ... et même les boutons "bas/droite" pouvait se gérer via un TPanel en Bottom, un second imbriqué en Right, les boutons à l'intérieur de ce denier

    Anchors cela existe depuis Delphi 4 !

    Il n'y a jamais besoin de faire les calculs soit même pour un redimensionnement ce type.
    Il faut des calculs pour éventuellement gérer plusieurs colonnes redimensionnables ou des trucs du genre

    Une petite vidéo qui applique Align sur des Fenêtres imbriqués mais c'est pareil pour un TPanel ou une TDBGrid
    Surtout entre 1'30" et 3'30"




    En FMX, Thierry Laborde pourtant le répète souvent, il faut utiliser des TLayout, une illustration dans Les layouts de Firemonkey
    C'est une technique extrêmement connu en Java Swing, cela n'a rien de nouveau, il faut juste s'y habituer
    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

  9. #9
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    Bonjour,

    Pour quelles infos de plus ..

    Nous sommes sous W7 et le dev est sous delphi Xe2.

    les calculs dynamiques, l'utilisation des Aligns, des Anchors marchent sur très bien, mais avec quelques "Bmol" je rencontre des problèmes avec les dalles "Full HD".

    Sur certaines le problème est réglé en mettant la taille de police de Windows = 100 %,
    Sur d'autres cela ne suffit pas et des erreurs de dimensionnements existent , forme hors écran, tronquées, images déformés..
    De plus pour un même fournisseur de PC avec ce genre de dalle toutes les erreurs de dimensionnement sont identiques ce qui semble plutôt normal.
    Mais avec des fournisseurs différents, pour de PC équipé de la même taille de dalle, d'une même résolution, on a des erreurs de dimensionnement différents. Donc plutôt dur de répondre a tous le monde.

    Aujourd'hui nous nous assurons que l'IHM est correcte sur 6 résolutions différentes et nous demandons au client de s’équiper de ses résolutions. Et nous avons laissés de coté les dalles FULL HD.

    Quelqu'un a t il déjà vus ce genre de différences, peut être ceci est il réglé sous des versions plus ressente aussi.
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  10. #10
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    regarde du cote de la méthode scalby du twincontrol dans l'unité controls
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    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 452
    Points : 24 863
    Points
    24 863
    Par défaut
    Citation Envoyé par petitcoucou31 Voir le message
    Nous sommes sous W7 et le dev est sous delphi Xe2.

    les calculs dynamiques, l'utilisation des Aligns, des Anchors marchent sur très bien, mais avec quelques "Bmol" je rencontre des problèmes avec les dalles "Full HD".
    Etrange, j'ai la même conf, la plupart des utilisateurs sont en 1080p (62%)
    Je n'ai constaté un problème avec l'option de Zoom de Windows sur un poste client en 1600x900 accédant aux applications via Serveur CITRIX (lui n'ayant pas d'écran, n'a pas de résolution native)
    J'ai remplacé les Anchors par une série de Panel imbriqués, plus de soucis
    C'est bien la seule application qui m'a posé problème
    il faut dire que j'utilise souvent trois panels, un top, un client, un bottom, ensuite, pour les boutons, je ne joue que sur Left/Right

    D'ailleurs mes modules gèrent ce Zoom Windows et permettent même de monter à 200% voire 300% via ScaleBy
    Je te confirme qu'il faut apporter un très très grand soin au Anchors et Align si le Zoom agrandi trop la fenêtre et qu'il faut que les composants s'adaptent

    Je travaille sur un parc interne d'une entreprise
    J'ai mis un log au démarrage des modules, les premiers en ont bénéficié il y a 16 mois, lorsqu'avec un collègue on a repris en main ce que nous avais les laissés les prestataires
    voici une stat des résolutions les plus populaires (échantillons de 224591 lancement de module)
    [SCREEN:1920x1080] 61,76%
    [SCREEN:1024x768] 14,71%
    [SCREEN:1600x900] 10,17%
    [SCREEN:1280x1024] 4,45%
    [SCREEN:1440x900] 2,61%
    [SCREEN:1680x1050] 1,67%
    Et une vingtaine de résolution encore moins standard
    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

  12. #12
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 688
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    Citation Envoyé par petitcoucou31 Voir le message
    les calculs dynamiques, l'utilisation des Aligns, des Anchors marchent sur très bien, mais avec quelques "Bmol" je rencontre des problèmes avec les dalles "Full HD".
    Plutôt High DPI, non ?

    Il faudrait faire un essai en rendant l'application "DPI Aware" (manifest).

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    En fait cela semble être Windows qui n'arrive pas à gérer les High DPI How do I make my GUI behave well when Windows font scaling is greater than 100%

    La solution: dire à Windows de ne pas redimensionner son application avec la propriété scaled.

    Lorsqu'on pense à Google avec Android ou Apple et iOS


    Sinon j'allais dire, imbriquer les panels il faut faire attention parce que cela peut devenir vite pénible pendant le Design Time (*) mais apparemment ShaiLeTroll a limité son nombre de panels.


    * -> Les déplacements de panels peuvent subir des redimensionnements, pour trouver un U.I. il faut parfois tout déplier (il n'y a pas de fonctions de recherche), l'IDE indique le Z-Order dans le fichier .DFM, le "send back"/ "bring to front" est capricieux, le panel a une propriété bizarre FullRepaint ...

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 71
    Points : 19
    Points
    19
    Par défaut
    j'ai configuré l'anchors mais quand d'agrandi la forme du logiciel lka taille des composants deviens trop grande comlme vous voyer sur la photo ci-joint,
    ya une moyenne pour garder la taille petite ?
    Nom : 5.JPG
Affichages : 1406
Taille : 48,7 Ko

  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 71
    Points : 19
    Points
    19
    Par défaut
    pardon l'autre image c'est avec le composant reseiskit celle ci avec anchors

    Nom : 6.JPG
Affichages : 1338
Taille : 28,6 Ko

  16. #16
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,
    il faut mettre les anchors uniquement pour ta grille, pas pour les boutons
    A+
    Charly

  17. #17
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    ou mettre les boutons dans un panel
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  18. #18
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 71
    Points : 19
    Points
    19
    Par défaut
    merci infiniment pour votre aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/06/2006, 11h58
  2. Réponses: 8
    Dernier message: 19/06/2006, 16h31
  3. Mise en forme automatique d'un tableau
    Par Gestion dans le forum Access
    Réponses: 2
    Dernier message: 24/03/2006, 22h19
  4. Atteindre NewRec dans sous form automatiquement !
    Par samlepiratepaddy dans le forum Access
    Réponses: 10
    Dernier message: 25/09/2005, 10h25
  5. mise en forme automatique du code a 80 colonnes ??
    Par benwa dans le forum JBuilder
    Réponses: 1
    Dernier message: 27/03/2005, 22h43

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