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:16] thierry [Structure TScrollInfo] |
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 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]] | ||