Ceci est une ancienne révision du document !
Utilisation et gestion des Scrollbars
Dans un component
Affichage
Affichage : API Windows ShowScrollBar(Handle, SB_BOTH, true);
- Handle = Handle du component (TWinControl.handle)
- SB_BOTH = affichage des deux SB_HORZ et SB_VERT
- True = visible
Capter les messages de Scroll
Pour capter les scrolling, implementer les procedures suivantes
procedure WMHScroll(var Msg: TLMScroll); message WM_HSCROLL; procedure WMVScroll(var Msg: TLMScroll); message WM_VSCROLL;
Le message TLMScroll contient les membres suivants:
- LMessages
TLMScroll = record Msg: Cardinal; ... ScrollCode: SmallInt; // code voir plus bas SmallPos: SmallInt; // Position sous forme d'un SmallInt ScrollBar: HWND; // Handle de la scrollbar ... Result: LRESULT; // See remark Pos: LongInt; // Position en integer end;
ScrollCodes
- defines.inc
{ Scroll Bar notifications } SB_LINEUP = 0; SB_LINEDOWN = 1; SB_LINELEFT = 0; SB_LINERIGHT = 1; SB_PAGEUP = 2; SB_PAGEDOWN = 3; SB_PAGELEFT = 2; SB_PAGERIGHT = 3; SB_THUMBPOSITION = 4; SB_THUMBTRACK = 5; SB_ENDSCROLL = 8; SB_LEFT = 6; SB_RIGHT = 7; SB_BOTTOM = 7; SB_TOP = 6;
Modifier la Scrollbar avec ScrollInfo
Structure TScrollInfo
tagScrollInfo = record cbSize : UINT; // Taille de cette structure = sizeof(TScrollInfo) fMask : UINT; // Voir ci dessous nMin: Integer; nMax: Integer; nPage: UInt; nPos: Integer; nTrackPos: Integer; end; PScrollInfo = ^TScrollInfo; TScrollInfo = tagScrollinfo;
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 :
Valeur | Signification |
---|---|
SIF_ALL | SIF_PAGE or SIF_POS or SIF_RANGE or SIF_TRACKPOS |
SIF_DISABLENOSCROLL | Cette valeur n'est utilisée que lors de la définition des paramètres d'une barre de défilement. Si les nouveaux paramètres de la barre de défilement la rendent inutile, désactivez la barre de défilement au lieu de la supprimer. |
SIF_PAGE | Le membre nPage contient la taille de page pour une Scrollbar proportionnelle. |
SIF_POS | Le membre de nPos contient la position de la Scroll Box, qui n'est pas mise à jour lorsque l'utilisateur fait glisser la Scroll Box. |
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. |
Autres fonctions
- func.inc
function SetScrollPos(hWnd:HWND; nBar:longint; nPos:longint; bRedraw:WINBOOL):longint; external 'user32' name 'SetScrollPos'; function GetScrollPos(hWnd:HWND; nBar:longint):longint; external 'user32' name 'GetScrollPos'; function SetScrollRange(hWnd:HWND; nBar:longint; nMinPos:longint; nMaxPos:longint; bRedraw:WINBOOL):WINBOOL; external 'user32' name 'SetScrollRange'; function GetScrollRange(hWnd:HWND; nBar:longint; lpMinPos:LPINT; lpMaxPos:LPINT):WINBOOL; external 'user32' name 'GetScrollRange'; function ShowScrollBar(hWnd:HWND; wBar:longint; bShow:WINBOOL):WINBOOL; external 'user32' name 'ShowScrollBar'; function EnableScrollBar(hWnd:HWND; wSBflags:UINT; wArrows:UINT):WINBOOL; external 'user32' name 'EnableScrollBar'; function GetScrollInfo(hWnd: HWND; BarFlag: Integer; var ScrollInfo: TScrollInfo): BOOL; external 'user32' name 'GetScrollInfo'; function SetScrollInfo(hWnd: HWND; BarFlag: Integer; const ScrollInfo: TScrollInfo; Redraw: BOOL): Integer; external 'user32' name 'SetScrollInfo';
Vous pourriez laisser un commentaire si vous étiez connecté.