Ceci est une ancienne révision du document !
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
Sources
Vous pourriez laisser un commentaire si vous étiez connecté.