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:18] thierry [fMask] |
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 61: | Ligne 61: | ||
| nMax: Integer; | nMax: Integer; | ||
| nPage: UInt; // Taille de la ScrollBox proportionnellement au range de la ScrollBar | 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 81: | Ligne 81: | ||
| C'est la taille que doit faire la ScrollBox, proportionnellement au range de la ScrollBar. | C'est la taille que doit faire la ScrollBox, proportionnellement au range de la ScrollBar. | ||
| - | Par exemple si on defini nPage a 100 et que la ScrollBar a un Min de 0 et un Max de 1000, la taille de la ScrollBox fera un dizieme de la taille 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]] | ||
| Ligne 96: | Ligne 116: | ||
| </code> | </code> | ||
| + | Source : [[https://docs.microsoft.com/en-us/windows/win32/controls/bumper-scroll-bars-reference-functions]] | ||