C'est a dire les composants qui sont dessinés à l’écran.
Affichage : API Windows ShowScrollBar(Handle, SB_BOTH, true);
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:
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
{ 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;
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';
Pour gerer la souris on peut surcharger les procedures de TControl :
TControl = class(TLCLComponent) ... protected // key and mouse procedure Click; virtual; procedure DblClick; virtual; procedure TripleClick; virtual; procedure QuadClick; virtual; function GetMousePosFromMessage(const MessageMousePos: TSmallPoint): TPoint; procedure MouseDown(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); virtual; procedure MouseMove(Shift: TShiftState; X,Y: Integer); virtual; procedure MouseUp(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); virtual; procedure MouseEnter; virtual; procedure MouseLeave; virtual; function DialogChar(var Message: TLMKey): boolean; virtual; procedure UpdateMouseCursor(X, Y: integer);
L'objet Screen (TScreen) de l'unit Forms, permet de connaitre (entre autre) la taille de l’écran utilisé.
screen.widht screen.height
voir en bas de cette page → https://wiki.freepascal.org/Colors