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:22] 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 69: | Ligne 69: | ||
== fMask == | == fMask == | ||
- | fMask : Spécifie les paramètres de la barre de défilement à définir ou à récupérer. Ce membre peut être une combinaison des valeurs suivantes : | + | fMask : Spécifie les paramètres de la ScrollBar à définir ou à récupérer. |
^ Valeur ^Signification ^ | ^ Valeur ^Signification ^ | ||
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]] | ||