Ceci est une ancienne révision du document !
Dessin des Controls
Bloquer l'affichage du control lors d'un Update
Il est possible que l'on ai besoin de “figer” le contrôle, lorsque l'on met a jour ses enfants par exemple, pour éviter le scintillement de celui-ci.
Malheureusement, TControl, n'implemente pas BeginUpdate
et EndUpdate
.
par SendMessage
begin // Defer updates SendMessage(Handle, WM_SETREDRAW, WPARAM(False), 0); try // Create all your controls here finally // Make sure updates are re-enabled SendMessage(Handle, WM_SETREDRAW, WPARAM(True), 0); // Invalidate; // Might be required to reflect the changes end; end;
via LockWindowUpdate
Source : https://forum.lazarus.freepascal.org/index.php?topic=43638.0
LockWindowUpdate(Control.Handle); try //... finally LockWindowUpdate(0); end;
ControlStyle et "transparence"
Pour qu'un control puisse prendre la couleur du Parent, il faut definir : ParentColor
et ControlStyle
ParentColor:=true; ControlStyle := ControlStyle + [csOpaque]; Canvas.Pen.Color:=clWhite; canvas.Pen.Style:=psDot; Canvas.Frame(vRect);
TControlBorderSpacing
TControlBorderSpacing est une classe utilisée dans les environnements de développement visuel comme Lazarus (basé sur la bibliothèque de composants Free Pascal) pour gérer l'espacement autour d'un contrôle. Elle est particulièrement utile pour définir les marges (espace vide) entre un contrôle et les autres contrôles environnants, ou entre un contrôle et les bords de son conteneur parent.
Rôle de TControlBorderSpacing
Le rôle principal de TControlBorderSpacing est de fournir une manière standard et flexible de gérer les marges d'un contrôle. Cela permet de s'assurer qu'un contrôle n'est pas collé directement à d'autres contrôles ou aux bords de son conteneur, améliorant ainsi l'apparence visuelle et l'organisation de l'interface utilisateur.
Propriétés principales de TControlBorderSpacing
Voici les propriétés les plus courantes de TControlBorderSpacing :
- Around : Définit l'espace autour du contrôle, c'est-à-dire une marge uniforme de tous les côtés (haut, bas, gauche, droite).
- Top : Spécifie la marge au-dessus du contrôle.
- Bottom : Spécifie la marge en dessous du contrôle.
- Left : Spécifie la marge à gauche du contrôle.
- Right : Spécifie la marge à droite du contrôle.
- InnerBorder : Détermine l'espace intérieur autour du contrôle lui-même, souvent utilisé dans des conteneurs pour créer un padding (remplissage interne).
- OuterBorder : Contrôle l'espace extérieur autour du contrôle.
Exemple d'utilisation
Supposons que vous ayez un TButton placé dans un TPanel, et que vous souhaitiez ajouter un espace de 10 pixels autour du bouton pour qu'il ne touche pas directement les bords du panneau. Vous pourriez configurer TControlBorderSpacing comme suit :
```
Button1.BorderSpacing.Around := 10;
```
Ou, pour spécifier des marges différentes pour chaque côté :
```
Button1.BorderSpacing.Left := 5; Button1.BorderSpacing.Top := 10; Button1.BorderSpacing.Right := 5; Button1.BorderSpacing.Bottom := 10;
En utilisant TControlBorderSpacing, vous pouvez contrôler précisément l'espacement des contrôles dans une interface utilisateur, ce qui est particulièrement utile lorsque vous travaillez avec des layouts dynamiques ou des interfaces utilisateur complexes.