Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
prog:lazarus:components:scrollbars [07/04/2020 18:23] thierry [fMask] |
prog:lazarus:components:scrollbars [09/04/2020 19:16] (Version actuelle) thierry [Connaitre la taille des Scrollbar] |
||
|---|---|---|---|
| Ligne 34: | Ligne 34: | ||
| <code deplhi defines.inc> | <code deplhi defines.inc> | ||
| { Scroll Bar notifications } | { Scroll Bar notifications } | ||
| - | SB_LINEUP = 0; | + | SB_LINEUP = 0; // On appuis sur le bouton a l’extrémité haute |
| - | SB_LINEDOWN = 1; | + | SB_LINEDOWN = 1; // On appuis sur le bouton a l’extrémité basse |
| - | SB_LINELEFT = 0; | + | SB_LINELEFT = 0; // On appuis sur le bouton a l’extrémité gauche |
| - | SB_LINERIGHT = 1; | + | SB_LINERIGHT = 1;// On appuis sur le bouton a l’extrémité droite |
| - | SB_PAGEUP = 2; | + | SB_PAGEUP = 2; // On click entre la Scroll Box et le bouton à l’extrémité haute |
| - | SB_PAGEDOWN = 3; | + | SB_PAGEDOWN = 3; // On click entre la Scroll Box et le bouton à l’extrémité basse |
| - | SB_PAGELEFT = 2; | + | SB_PAGELEFT = 2; // On click entre la Scroll Box et le bouton à l’extrémité gauche |
| - | SB_PAGERIGHT = 3; | + | SB_PAGERIGHT = 3; // On click entre la Scroll Box et le bouton à l’extrémité droite |
| - | SB_THUMBPOSITION = 4; | + | SB_THUMBPOSITION = 4; // On relâche (drop) le Scroll Box ou on utilise la molette de la souris |
| - | SB_THUMBTRACK = 5; | + | SB_THUMBTRACK = 5; // On tire (drag) le Scroll Box |
| - | SB_ENDSCROLL = 8; | + | SB_ENDSCROLL = 8; // On sort de la Scrollbar |
| - | SB_LEFT = 6; | + | SB_LEFT = 6; // On positionne la Scroll Box a l'extremité gauche (avec le menu contextuel) |
| - | SB_RIGHT = 7; | + | SB_RIGHT = 7; // On positionne la Scroll Box a l'extremité droite (avec le menu contextuel) |
| - | SB_BOTTOM = 7; | + | SB_BOTTOM = 7; // On positionne la Scroll Box a l'extremité basse(avec le menu contextuel) |
| - | SB_TOP = 6; | + | SB_TOP = 6; // On positionne la Scroll Box a l'extremité haute (avec le menu contextuel) |
| </code> | </code> | ||
| ==== Modifier la Scrollbar avec ScrollInfo ==== | ==== Modifier la Scrollbar avec ScrollInfo ==== | ||
| Ligne 60: | Ligne 60: | ||
| nMin: Integer; | nMin: Integer; | ||
| nMax: Integer; | nMax: Integer; | ||
| - | nPage: UInt; | + | nPage: UInt; // Taille de la ScrollBox proportionnellement au range de la ScrollBar |
| - | nPos: Integer; | + | nPos: Integer; // Position par rapport au range de la ScrollBar |
| nTrackPos: Integer; | nTrackPos: Integer; | ||
| end; | end; | ||
| Ligne 78: | Ligne 78: | ||
| |''SIF_RANGE'' |Les membres ''nMin'' et'' nMax'' contiennent les valeurs minimales et maximales de la plage de défilement.| | |''SIF_RANGE'' |Les membres ''nMin'' et'' nMax'' contiennent les valeurs minimales et maximales de la plage de défilement.| | ||
| |''SIF_TRACKPOS'' |Le membre ''nTrackPos'' contient la position actuelle de la Scroll Box pendant que l'utilisateur la fait glisser. | | |''SIF_TRACKPOS'' |Le membre ''nTrackPos'' contient la position actuelle de la Scroll Box pendant que l'utilisateur la fait glisser. | | ||
| + | == nPage == | ||
| + | C'est la taille que doit faire la ScrollBox, proportionnellement au range de la ScrollBar. | ||
| + | |||
| + | Par exemple si on défini nPage a 100 et que la ScrollBar a un Min de 0 et un Max de 1000, la taille de la ScrollBox fera un dixième de la taille de la ScrollBar. | ||
| + | |||
| + | Apparemment il y aurait un minimum, c'est a dire que si on défini nPage à 1, la ScrollBox ne s'adapte pas exactement a la taille, elle reste a une taille convenable pour être saisie. | ||
| + | |||
| + | |||
| + | ==== Connaitre la taille des Scrollbar ==== | ||
| + | Les valeurs ci-dessous sont les valeurs relevées sur mon system. | ||
| + | <code delphi> | ||
| + | uses windows; | ||
| + | |||
| + | GetSystemMetrics(SM_CXHSCROLL) = 17 | ||
| + | GetSystemMetrics(SM_CYHSCROLL) = 17 | ||
| + | GetSystemMetrics(SM_CXHTHUMB) = 17 | ||
| + | GetSystemMetrics(SM_CXVSCROLL) = 17 | ||
| + | GetSystemMetrics(SM_CXVSCROLL) = 17 | ||
| + | GetSystemMetrics(SM_CYVTHUMB) = 17 | ||
| + | GetSystemMetrics(SM_MOUSEHORIZONTALWHEELPRESENT) = 0 // 0 = pas de molette horizontale sur ma souris. | ||
| + | GetSystemMetrics(SM_MOUSEWHEELPRESENT) = 1 // 1 = Une molette verticale est presente sur ma souris | ||
| + | </code> | ||
| + | Source : [[https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getsystemmetrics]] | ||
| + | |||
| + | |||
| ==== Autres fonctions ==== | ==== Autres fonctions ==== | ||
| Ligne 91: | Ligne 116: | ||
| </code> | </code> | ||
| + | Source : [[https://docs.microsoft.com/en-us/windows/win32/controls/bumper-scroll-bars-reference-functions]] | ||