Redimensionnement dynamique des fiches et des contrôles

De RAD Studio
Aller à : navigation, rechercher

Remonter à Programmation pour des environnements hôtes hétérogènes


Si les fiches et les contrôles visuels d'une application sont dynamiquement redimensionnés, adaptez tous les aspects du processus de redimensionnement pour garantir un aspect optimal de l'application pour toutes les résolutions écran possibles. Voici quelques facteurs à considérer lorsque vous redimensionnez dynamiquement les éléments visuels d'une application :

  • Le redimensionnement des fiches et des contrôles visuels est effectué en utilisant un ratio calculé en comparant la résolution écran du système de développement à celle du système sur lequel l'application est installée. Utilisez une constante pour représenter une dimension de la résolution écran du système de développement : la hauteur ou la largeur exprimée en pixels. Récupérez à l'exécution la même dimension pour le système de l'utilisateur en utilisant la propriété TScreen.Height ou TScreen.Width. Divisez la valeur pour le système de développement par la valeur pour le système de l'utilisateur afin d'en dériver le ratio entre les résolutions écran des deux systèmes.
  • Redimensionnez les éléments visuels de l'application (fiches et contrôles) en réduisant ou en augmentant la taille des éléments et leur position dans les fiches. Ce redimensionnement est proportionnel à la différence entre les résolutions écran des systèmes du développeur et de l'utilisateur. Redimensionnez et repositionnez automatiquement les contrôles visuels des fiches en affectant la valeur True à la propriété Scaled de la fiche CustomForm.Scaled et en appelant TWinControl.ScaleBy, sa méthode ScaleBy. La méthode ScaleBy ne modifie pas la hauteur ou la largeur de la fiche. Il faut effectuer cette opération manuellement en multipliant les valeurs en cours des propriétés Height et Width par le ratio de différence des résolutions écran.
  • Les contrôles d'une fiche peuvent être redimensionnés manuellement au lieu d'utiliser la méthode TWinControl.ScaleBy, en faisant référence à chaque contrôle dans une boucle et en affectant ses dimensions et sa position. La valeur des propriétés Height et Width des contrôles visuels est multipliée par le ratio de différence des résolutions écran. Repositionnez les contrôles visuels en fonction de la résolution écran en multipliant la valeur des propriétés Top et Left par le même ratio.
  • Si une application a été conçue sur un ordinateur configuré pour une résolution écran supérieure à celle de l'utilisateur, les tailles de fontes seront réduites dans le processus de redimensionnement des contrôles visuels. Si la taille de la fonte lors de la conception est petite, la fonte redimensionnée à l'exécution risque d'être trop petite pour être lisible. Par exemple, supposons que la taille de fonte par défaut d'une fiche est 8. Avec un système de développement ayant une résolution écran de 1024x768 et celui de l'utilisateur une résolution 640x480, les contrôles visuels seront réduits d'un facteur 0,625 (640 / 1024 = 0,625). La taille de fonte d'origine de 8 est réduite à 5 (8 * 0,625 = 5). Le texte de l'application apparaît irrégulier et illisible quand il s'affiche l'affiche dans la fonte réduite.
  • Certains contrôles visuels comme TLabel et TEdit se redimensionnent dynamiquement quand la taille de la fonte du contrôle change. Cela peut affecter les applications déployées quand les fiches et les contrôles sont redimensionnés dynamiquement. Le redimensionnement du contrôle provoqué par la modification de taille de la fonte se cumule à la modification de taille due au redimensionnement proportionnel aux résolutions écran. Cet effet indésirable est neutralisé en affectant la valeur False à la propriété AutoSize de ces contrôles.
  • Il faut éviter d'utiliser des coordonnées en pixel explicites, par exemple pour écrire directement dans un canevas. Il faut à la place modifier les coordonnées en leur appliquant un ratio proportionnel au ratio de différence des résolutions écran entre le système de développement et celui d'utilisation. Si, par exemple, l'application dessine un rectangle dans le canevas de dix pixels de haut sur vingt pixels de large, multipliez les valeurs dix et vingt par le ratio de différence de résolution. Ainsi, vous êtes certain que le rectangle apparaît visuellement de la même taille pour différentes résolutions écran.

Voir aussi

Exemples de code