sb_SuppressHoverBorder = FALSE
//
// *** end constructor event ***
// “MouseMove” 事件代码
// *** begin mousemove event ***
//
rect lr_Border
if not ib_MouseCaptured then
if flags < > 1 then
this.PictureName = is_PicMouseOver
else
// Left Button Down
this.PictureName = is_PicClickDown
end if
in_State = 1
SetCapture(handle(this))
ib_MouseCaptured = TRUE
if not sb_SuppressHoverBorder then
lr_Border.left = 0
lr_Border.top = 0
lr_Border.right = UnitsToPixels
(this.Width, XUnitsToPixels!)
lr_Border.bottom = UnitsToPixels
(this.Height, YUnitsToPixels!)
if flags < > 1 then
DrawEdge(GetDC(handle(this)),
lr_Border, 4, 1+2+4+8)
else
// Left Button Down
DrawEdge(GetDC(handle(this)),
lr_Border, 2, 1+2+4+8)
end if
end if
else
// 检测鼠标是否滑出按钮区域?
if (XPos < 0 or YPos < 0) or (XPos >
this.Width or YPos > this.Height) then
ib_MouseCaptured = FALSE
ReleaseCapture()
in_State = 0
this.PictureName = is_PicNormal
end if
end if
return 1
//
// *** end mousemove event ***
// “LButtonDown” 事件代码
// *** begin lbuttondown event ***
//
rect lr_Border
if ib_MouseCaptured then
ib_MouseCaptured = FALSE
ReleaseCapture()
end if
in_State = 2
this.PictureName = is_PicClickDown
SetCapture(handle(this))
ib_MouseCaptured = TRUE
if not sb_SuppressHoverBorder then
lr_Border.left = 0
lr_Border.top = 0
lr_Border.right = UnitsToPixels
(this.Width, XUnitsToPixels!)
lr_Border.bottom = UnitsToPixels
(this.Height, YUnitsToPixels!)
DrawEdge(GetDC(handle(this)),
lr_Border, 2, 1+2+4+8)
end if
return 1
//
// *** end lbuttondown event ***
// “LButtonUp” 事件代码
// *** begin lbuttonup event ***
//
rect lr_Border
if ib_MouseCaptured then
ib_MouseCaptured = FALSE
ReleaseCapture()
end if
if (XPos < 0 or YPos < 0) or (XPos >
this.Width or YPos > this.Height) then
in_State = 0
this.PictureName = is_PicNormal
else
in_State = 1
this.PictureName = is_PicHover
SetCapture(handle(this))
ib_MouseCaptured = TRUE
if not sb_SuppressHoverBorder then
lr_Border.left = 0
lr_Border.top = 0
lr_Border.right = UnitsToPixels
(this.Width, XUnitsToPixels!)
lr_Border.bottom = UnitsToPixels
(this.Height, YUnitsToPixels!)
DrawEdge(GetDC(handle(this)),
lr_Border, 4, 1+2+4+8)
end if
end if
// 产生Clicked事件
this.event post clicked()
return 1
//
// *** end lbuttonup event ***
// “Other” 事件代码
// *** begin other event ***
//
if message.number = 533 and ib_MouseCaptured then
// wm_CaptureChanged
ib_MouseCaptured = FALSE
in_State = 0
this.PictureName = is_PicNormal
return 1
end if