Les composants Graphics
C'est a dire les composants qui sont dessinés à l’écran.
Le Canvas
Les ScrollBars
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;
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';
La Souris
Pour gerer la souris on peut surcharger les procedures de TControl :
- unit Controls
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);
Astuces
Screen
L'objet Screen (TScreen) de l'unit Forms, permet de connaitre (entre autre) la taille de l’écran utilisé.
screen.widht screen.height
Dessiner des élément du théme
voir en bas de cette page → https://wiki.freepascal.org/Colors
Sources
Vous pourriez laisser un commentaire si vous étiez connecté.