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.
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.
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
Merci beaucoup mais pour scaleby comment je l'utilise est ce que je l'utilise pour chaque composant ?
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
Bonjour,
... je viens de tester : il suffit de faire appel à la méthode d'une procedure TForm1...Merci beaucoup mais pour scaleby comment je l'utilise est ce que je l'utilise pour chaque composant ?
Ceci réduira tous les composants à 50%
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 procedure TForm1.Button1Click(Sender: TObject); begin scaleBy(50,100); end;
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
Merci à tous.
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 ?
Bonjour,
... c'est bien dommage.A Nono40 : Il y a trop de choses qui ne sont pas changées avec ScaleBy.
... avec BorderStyle:=bsDialog on a affaire à une fiche de taille fixe et figée et le test avec le bout de code suivant suivant :A GoustiFruit : Et ça fonctionne bien dans le cas d'une fiche de taille fixe/figée ?
... réduit non seulement la taille de tous les composants, mais aussi la taille de la fiche.
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;
... donc dans le cas d'une fiche qui n'a pas son BorderStyle:=bsDialog mais qu'on veut redimensionner il suffit de faire :
A+.
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;
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
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...
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é.
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...)
Merci beaucoup Whiler.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager