Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;
X, Y : Integer);
Var
rCheckMouse : TRect;
booChangedCur: Boolean;
Begin
booChangedCur:= False;
// BORDER TOP
rCheckMouse:= Rect(iEdgeSize, 0, Width-iEdgeSize, iBorderWidth);
If PtInRect(rCheckMouse, Point(X,Y))
Then
Begin
booChangedCur:= True;
Cursor := crSizeNS;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F003, 0);
End;
End;
// BORDER RIGHT
rCheckMouse:= Rect(Width-iBorderWidth, iEdgeSize, Width, Height-iEdgeSize);
If PtInRect(rCheckMouse, Point(X,Y))
Then
Begin
booChangedCur:= True;
Cursor := crSizeWE;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F002, 0);
End;
End;
// BORDER BOTTOM
rCheckMouse:= Rect(iEdgeSize, Height-iBorderWidth, Width-iEdgeSize, Height);
If PtInRect(rCheckMouse, Point(X,Y))
Then
Begin
booChangedCur:= True;
Cursor := crSizeNS;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F006, 0);
End;
End;
// BORDER LEFT
rCheckMouse:= Rect(0, iEdgeSize, iBorderWidth, Height-iEdgeSize);
If PtInRect(rCheckMouse, Point(X,Y))
Then
Begin
booChangedCur:= True;
Cursor := crSizeWE;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F001, 0);
End;
End;
// EDGE UPPER LEFT
rCheckMouse:= Rect(0, 0, iEdgeSize, iEdgeSize);
If PtInRect(rCheckMouse, Point(X,Y))
Then
Begin
booChangedCur:= True;
Cursor := crSizeNWSE;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F004, 0);
End;
End;
// EDGE UPPER RIGHT
rCheckMouse:= Rect(Width - iEdgeSize, 0, Width, iEdgeSize);
If PtInRect(rCheckMouse, Point(X,Y))
Then
Begin
booChangedCur:= True;
Cursor := crSizeNESW;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F005, 0);
End;
End;
// EDGE BOTTOM RIGHT
rCheckMouse:= Rect(Width-iEdgeSize, Height-iEdgeSize, Width, Height);
If PtInRect(rCheckMouse, Point(X,Y))
Then
Begin
booChangedCur:= True;
Cursor := crSizeNWSE;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F008, 0);
End;
End;
// EDGE BOTTOM LEFT
rCheckMouse:= Rect(0, Height-iEdgeSize, iEdgeSize, Height);
If PtInRect(rCheckMouse, Point(X,Y))
Then
Begin
booChangedCur:= True;
Cursor := crSizeNESW;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F007, 0);
End;
End;
// NORMAL CURSOR
If Not booChangedCur
Then Cursor:= crDefault;
End;
Procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift : TShiftState; X, Y: Integer);
Begin
If Button = mbRight
Then Close;
End;
Procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift : TShiftState; X, Y: Integer);
Var
rMoveWnd : TRect;
booChangedCur: Boolean;
Begin
booChangedCur:= False;
rMoveWnd:= Rect(iEdgeSize, iBorderWidth, Width-iEdgeSize, 30);
If PtInRect(rMoveWnd, Point(X, Y))
Then
Begin
booChangedCur:= True;
Cursor := crSize;
If ssLeft In Shift
Then
Begin
ReleaseCapture;
SendMessage(Handle, LM_SysCommand, $F012, 0);
End;
End;
If Not booChangedCur
Then Cursor:= crDefault;
End;