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 19:02] thierry [Capter les messages de Scroll] |
prog:lazarus:components:scrollbars [09/04/2020 19:16] (Version actuelle) thierry [Connaitre la taille des Scrollbar] |
||
|---|---|---|---|
| Ligne 42: | Ligne 42: | ||
| SB_PAGELEFT = 2; // On click entre la Scroll Box et le bouton à l’extrémité gauche | SB_PAGELEFT = 2; // On click entre la Scroll Box et le bouton à l’extrémité gauche | ||
| SB_PAGERIGHT = 3; // On click entre la Scroll Box et le bouton à l’extrémité droite | SB_PAGERIGHT = 3; // On click entre la Scroll Box et le bouton à l’extrémité droite | ||
| - | SB_THUMBPOSITION = 4; // On relâche (drop) le Scroll Box | + | SB_THUMBPOSITION = 4; // On relâche (drop) le Scroll Box ou on utilise la molette de la souris |
| SB_THUMBTRACK = 5; // On tire (drag) le Scroll Box | SB_THUMBTRACK = 5; // On tire (drag) le Scroll Box | ||
| SB_ENDSCROLL = 8; // On sort de la Scrollbar | SB_ENDSCROLL = 8; // On sort de la Scrollbar | ||
| 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]] | ||