Ceci est une ancienne révision du document !
TControl, TWinControl
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
Non tésté !
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);
Accessibilité (pour utilisateur ayant un handicap)
Chaque TControl a un membre de Type TLazAccessibleObject
récupérable avec GetAccessibleObject
Plus d'infos ici :
Vous pourriez laisser un commentaire si vous étiez connecté.