Gestion de la disposition
Remonter à Utilisation de la fiche principale
A son niveau le plus élémentaire, vous contrôlez l'organisation de votre interface utilisateur par la manière de disposer les contrôles dans les fiches. Le choix des emplacements est reflété par les propriétés Top, Left, Width et Height des contrôles. Vous pouvez modifier ces valeurs à l'exécution afin de modifier la position ou la taille des contrôles dans les fiches.
Les contrôles disposent de nombreuses autres propriétés qui leur permettent de s'adapter automatiquement à leur contenu ou à leur conteneur. Cela vous permet d'organiser les fiches de telle manière que les différents éléments forment un tout unifié.
Deux propriétés contrôlent la position et la taille d'un contrôle relativement à celle de son parent. La propriété Align vous permet d'obliger un contrôle à s'adapter exactement à un côté spécifié de son parent ou à occuper toute la place disponible de la zone client du parent une fois les autres contrôles alignés. Quand le parent est redimensionné, les contrôles alignés sont automatiquement redimensionnés et restent positionnés le long d'un côté donné du parent.
Si vous voulez qu'un contrôle reste positionné relativement à un côté particulier de son parent sans toucher ce bord ou être redimensionné pour occuper la totalité du côté, vous pouvez utiliser la propriété Anchors.
Pour vous assurer qu'un contrôle ne devient ni trop grand ni trop petit, vous pouvez utiliser la propriété Constraints. Constraints vous permet de spécifier la hauteur maximum, la hauteur minimum, la largeur maximum et la largeur minimum du contrôle. Initialisez ces valeurs afin de limiter la taille (en pixels) de la hauteur et de la largeur du contrôle. Ainsi, en initialisant les contraintes MinWidth et MinHeight d'un objet conteneur, vous êtes certain que ses objets enfant sont toujours visibles.
La valeur de Constraints se propage le long de la hiérarchie parent/enfant de telle manière que la taille d'un objet peut être restreinte car il contient des enfants alignés qui ont des contraintes de taille. Constraints peut également empêcher un contrôle d'être mis à l'échelle dans une dimension particulière lors de l'appel de sa méthode ChangeScale.
TControl introduit un événement protégé, OnConstrainedResize, de type TConstrainedResizeEvent :
TConstrainedResizeEvent = procedure(Sender: TObject; var MinWidth, MinHeight, MaxWidth, MaxHeight: Integer) of object;
void __fastcall (__closure *TConstrainedResizeEvent)(System::TObject* Sender, int &MinWidth, int &MinHeight, int &MaxWidth, int &MaxHeight);
Cet événement vous permet de redéfinir les contraintes de taille lors d'une tentative de redimensionnement du contrôle. Les valeurs des contraintes sont transmises comme paramètres var, elles peuvent donc être modifiées dans le gestionnaire d'événement. OnConstrainedResize est publié pour les objets conteneur (TForm, TScrollBox, TControlBar et TPanel). De plus, les concepteurs de composants peuvent utiliser ou publier cet événement dans tout descendant de TControl.
Les contrôles dont le contenu peut changer de taille ont une propriété AutoSize qui force le contrôle à adapter sa taille à l'objet ou à la fonte qu'il contient.