Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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]]