Ceci est une ancienne révision du document !
TControlStyle
TControlStyle
TControlStyle = set of TControlStyleType;
Le rôle de 1TControlStyle
en Free Pascal est de spécifier les comportements et les caractéristiques d'un contrôle graphique dans une application. Il s'agit d'un ensemble de styles (set
) basé sur l'énumération TControlStyleType
(voir ci-dessous).
Rôle
TControlStyle
permet aux développeurs de définir et de modifier le comportement d'un contrôle à un niveau plus granulaire. En fonction des styles qui sont inclus dans cet ensemble, un contrôle pourra ou non :
- Gérer certains types d'événements (comme les clics, les doubles clics, etc.).
- Être interactif dans l'interface de conception (ce qui est utile pour les développeurs lorsqu'ils utilisent des outils de conception visuelle).
- Contrôler son apparence (comme être opaque, avoir un cadre, etc.).
- Fixer certaines contraintes (comme une largeur ou hauteur fixe).
- Intégrer des fonctionnalités spécifiques (comme afficher une image pendant une opération de glisser-déposer ou afficher un clavier virtuel lorsque le contrôle reçoit le focus).
Exemple
Lors de la création ou de la personnalisation d'un contrôle personnalisé, un développeur peut ajuster ControlStyle
pour adapter le comportement du contrôle à ses besoins. Par exemple :
MyControl.ControlStyle := MyControl.ControlStyle + [csOpaque, csDoubleClicks];
Dans cet exemple, MyControl
est un contrôle personnalisé et l'on ajoute les styles csOpaque
et csDoubleClicks
à son ControlStyle
. Cela signifie que le contrôle peindra entièrement sa zone (pas de transparence) et qu'il comprendra les double-clics de la souris.
TControlStyleType
Le type énuméré TControlStyleType
est utilisé pour décrire divers comportements et attributs possibles pour un contrôle visuel dans une interface utilisateur graphique (GUI). Chaque élément de l'énumération représente une fonctionnalité ou une caractéristique particulière qu'un contrôle peut avoir.
Voici une explication détaillée de chaque valeur dans cette énumération :
csAcceptsControls
Le contrôle peut avoir des sous-contrôles (enfants) dans l'interface de conception (designer).
csCaptureMouse
Le contrôle capture automatiquement la souris lorsqu'il est cliqué, c'est-à-dire qu'il recevra tous les événements de la souris tant qu'il est cliqué, même si le curseur est déplacé en dehors de ses limites.
csDesignInteractive
Le contrôle souhaite recevoir des événements de la souris lorsqu'il est en mode design (c'est-à-dire lorsqu'on le modifie dans l'interface de conception).
csClickEvents
Le contrôle gère les événements de clic de la souris.
csFramed
Non implémenté. Le contrôle aurait un cadre en 3D (utilisé pour indiquer une bordure visuelle).
csSetCaption
Si le nom du contrôle est identique à sa légende (Caption), changer le nom changera automatiquement la légende.
csOpaque
Le contrôle peint complètement sa zone (aucune transparence n'est laissée).
csDoubleClicks
Le contrôle comprend les double-clics de la souris.
csTripleClicks
Le contrôle comprend les triple-clics de la souris.
csQuadClicks
Le contrôle comprend les quadruple-clics de la souris.
csFixedWidth
Le contrôle a une largeur fixe, c'est-à-dire qu'il ne peut pas changer de largeur.
csFixedHeight
Le contrôle a une hauteur fixe, c'est-à-dire qu'il ne peut pas changer de hauteur. Par exemple, cela peut s'appliquer à une `TComboBox`.
csNoDesignVisible
Le contrôle est invisible dans l'interface de conception.
csReplicatable
La méthode `PaintTo` fonctionne, ce qui signifie que le contrôle peut se peindre sur un autre canevas (utilisé pour les captures d'écran ou les rendus externes).
csNoStdEvents
Les événements standard comme ceux de la souris, des touches ou des clics sont ignorés par le contrôle.
csDisplayDragImage
Pendant une opération de glisser-déposer, des images provenant d'une liste d'images de glisser-déposer (`dragimagelist`) sont affichées au-dessus du contrôle.
csReflector
Non implémenté. Indique que le contrôle répond aux messages de taille, de focus et de dialogue. Il peut être utilisé comme un contrôle ActiveX sous Windows.
csActionClient
Une action est définie pour ce contrôle, ce qui signifie que le contrôle est lié à une action (un concept qui permet de lier des événements ou des commandes à des composants GUI).
csMenuEvents
Non implémenté. Supposé gérer les événements de menu.
csNoFocus
Le contrôle ne prendra pas le focus lorsqu'il est cliqué avec la souris.
csNeedsBorderPaint
Non implémenté. Supposé indiquer que le contrôle nécessite une peinture de bordure.
csParentBackground
Sous Windows XP, ce style demande au système de peindre le fond du parent du contrôle sur le fond du contrôle, permettant une meilleure intégration visuelle avec les thèmes.
csDesignNoSmoothResize
Lors du redimensionnement du contrôle dans l'interface de conception, ne pas appeler `SetBounds` pendant le redimensionnement (réduisant les mises à jour visuelles).
csDesignFixedBounds
Le contrôle ne peut pas être déplacé ni redimensionné dans l'interface de conception.
csHasDefaultAction
Le contrôle implémente une action par défaut utile (utilisé par exemple pour l'action de validation sur un bouton).
csHasCancelAction
Le contrôle implémente une action d'annulation utile (utilisé par exemple pour l'action d'annulation sur un bouton).
csNoDesignSelectable
Le contrôle ne peut pas être sélectionné dans l'interface de conception.
csOwnedChildrenNotSelectable
Les sous-contrôles appartenant à ce contrôle ne sont pas sélectionnables dans l'interface de conception.
csAutoSize0x0
Si la taille préférée du contrôle est `0x0`, le contrôle sera réduit à `0x0`, la taille minimale par défaut étant généralement `1×1`.
csAutoSizeKeepChildLeft
Lorsque `AutoSize` est activé, les sous-contrôles ne sont pas déplacés horizontalement.
csAutoSizeKeepChildTop
Lorsque `AutoSize` est activé, les sous-contrôles ne sont pas déplacés verticalement.
csRequiresKeyboardInput
Si l'appareil n'a pas de clavier physique, cela indique qu'un clavier virtuel doit être affiché lorsque le contrôle reçoit le focus. Cela ne s'applique qu'aux descendants de `TWinControl`.
Ces différents styles sont généralement combinés en utilisant des opérateurs binaires pour former un ensemble (`set`) qui décrit les capacités et les comportements spécifiques d'un contrôle.