home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 7_2009-2012.ISO / data / zips / Xp_style_S21706612172009.psc / XPSlider / XPSlider.ctl < prev    next >
Text File  |  2009-12-15  |  21KB  |  667 lines

  1. VERSION 5.00
  2. Begin VB.UserControl XPSlider 
  3.    Appearance      =   0  'Flat
  4.    AutoRedraw      =   -1  'True
  5.    BackColor       =   &H80000005&
  6.    ClientHeight    =   480
  7.    ClientLeft      =   0
  8.    ClientTop       =   0
  9.    ClientWidth     =   3195
  10.    BeginProperty Font 
  11.       Name            =   "Tahoma"
  12.       Size            =   8.25
  13.       Charset         =   0
  14.       Weight          =   400
  15.       Underline       =   0   'False
  16.       Italic          =   0   'False
  17.       Strikethrough   =   0   'False
  18.    EndProperty
  19.    ForeColor       =   &H80000006&
  20.    ScaleHeight     =   32
  21.    ScaleMode       =   3  'Pixel
  22.    ScaleWidth      =   213
  23.    ToolboxBitmap   =   "XPSlider.ctx":0000
  24.    Begin VB.CommandButton cmdRight 
  25.       Height          =   210
  26.       Left            =   2955
  27.       Picture         =   "XPSlider.ctx":0312
  28.       Style           =   1  'Graphical
  29.       TabIndex        =   5
  30.       Top             =   30
  31.       Visible         =   0   'False
  32.       Width           =   240
  33.    End
  34.    Begin VB.CommandButton cmdLeft 
  35.       Height          =   210
  36.       Left            =   480
  37.       Picture         =   "XPSlider.ctx":055E
  38.       Style           =   1  'Graphical
  39.       TabIndex        =   4
  40.       Top             =   30
  41.       Visible         =   0   'False
  42.       Width           =   210
  43.    End
  44.    Begin VB.PictureBox picLeft 
  45.       Appearance      =   0  'Flat
  46.       BackColor       =   &H80000005&
  47.       BorderStyle     =   0  'None
  48.       ForeColor       =   &H80000008&
  49.       Height          =   225
  50.       Left            =   495
  51.       Picture         =   "XPSlider.ctx":07AA
  52.       ScaleHeight     =   225
  53.       ScaleWidth      =   240
  54.       TabIndex        =   3
  55.       Top             =   45
  56.       Width           =   240
  57.    End
  58.    Begin VB.PictureBox picRight 
  59.       BackColor       =   &H00FFFFFF&
  60.       BorderStyle     =   0  'None
  61.       Height          =   210
  62.       Left            =   2985
  63.       Picture         =   "XPSlider.ctx":09F6
  64.       ScaleHeight     =   210
  65.       ScaleWidth      =   255
  66.       TabIndex        =   2
  67.       Top             =   45
  68.       Width           =   255
  69.    End
  70.    Begin VB.PictureBox pic1 
  71.       AutoRedraw      =   -1  'True
  72.       BackColor       =   &H00FFFFFF&
  73.       BorderStyle     =   0  'None
  74.       FillColor       =   &H008080FF&
  75.       Height          =   120
  76.       Left            =   705
  77.       ScaleHeight     =   8
  78.       ScaleMode       =   3  'Pixel
  79.       ScaleWidth      =   151
  80.       TabIndex        =   0
  81.       Top             =   90
  82.       Width           =   2265
  83.       Begin VB.Image imgKnob 
  84.          Height          =   120
  85.          Left            =   0
  86.          Picture         =   "XPSlider.ctx":0C42
  87.          Top             =   0
  88.          Width           =   240
  89.       End
  90.    End
  91.    Begin VB.Image Image4 
  92.       Height          =   195
  93.       Left            =   1680
  94.       Picture         =   "XPSlider.ctx":0D2C
  95.       Top             =   645
  96.       Width           =   195
  97.    End
  98.    Begin VB.Image Image3 
  99.       Height          =   195
  100.       Left            =   1305
  101.       Picture         =   "XPSlider.ctx":0F78
  102.       Top             =   645
  103.       Width           =   195
  104.    End
  105.    Begin VB.Image Image2 
  106.       Height          =   195
  107.       Left            =   810
  108.       Picture         =   "XPSlider.ctx":11C4
  109.       Top             =   630
  110.       Width           =   195
  111.    End
  112.    Begin VB.Image Image1 
  113.       Height          =   195
  114.       Left            =   450
  115.       Picture         =   "XPSlider.ctx":1410
  116.       Top             =   645
  117.       Width           =   195
  118.    End
  119.    Begin VB.Label Label1 
  120.       Alignment       =   2  'Center
  121.       Appearance      =   0  'Flat
  122.       BackColor       =   &H80000005&
  123.       BackStyle       =   0  'Transparent
  124.       Caption         =   "0"
  125.       ForeColor       =   &H80000008&
  126.       Height          =   180
  127.       Left            =   30
  128.       TabIndex        =   1
  129.       Top             =   75
  130.       Width           =   315
  131.    End
  132. End
  133. Attribute VB_Name = "XPSlider"
  134. Attribute VB_GlobalNameSpace = False
  135. Attribute VB_Creatable = True
  136. Attribute VB_PredeclaredId = False
  137. Attribute VB_Exposed = False
  138. Option Explicit
  139. 'Ken Foster 2009 Dec
  140. Public Enum ebuttonstyle
  141.     Square_Fastclick = 0
  142.     Round_Slowclick = 1
  143. End Enum
  144.  
  145. Public Enum eArrowStyle
  146.     [Single] = 0
  147.     [Double] = 1
  148. End Enum
  149.  
  150. Private mMin              As Long         'Minimum value range
  151. Private mMax              As Long         'Maximum value range
  152. Private mValue            As Long         'Current Value
  153. Private mSliderWH      As Long
  154. Private mBarBaseCol          As OLE_COLOR
  155. Private mBarMidCol          As OLE_COLOR
  156.  
  157. Event Changed()
  158.  
  159. Private Declare Function TranslateColor Lib "olepro32.dll" Alias "OleTranslateColor" (ByVal clr As OLE_COLOR, ByVal palet As Long, Col As Long) As Long
  160. '------------------------------------------------------------
  161. 'draw and set rectangular area of the control
  162. Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  163. Private Declare Function FrameRect Lib "user32" (ByVal hDC As Long, lpRect As RECT, ByVal hBrush As Long) As Long
  164.  
  165. 'draw by pixel or by line
  166. Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
  167. Private Declare Function SetPixel Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
  168. Private Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
  169.  
  170. 'select and delete created objects
  171. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  172. Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
  173.  
  174. 'create regions of pixels and remove them to make the control transparent
  175. Private Declare Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long) As Long
  176. Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
  177. Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long
  178. Private Const RGN_DIFF As Long = 4
  179.  
  180. Private Type RECT
  181.     Left As Long
  182.     Top As Long
  183.     Right As Long
  184.     Bottom As Long
  185. End Type
  186.  
  187. Private Type POINTAPI
  188.     x As Long
  189.     y As Long
  190. End Type
  191.  
  192. Private Const m_def_ValueVis = True
  193. Private Const m_def_ValueCol = vbBlack
  194. Private Const m_def_ButtonStyle = 0
  195. Private Const m_def_ArrowStyle = 1
  196.  
  197. Private m_ArrowStyle As Integer
  198. Private m_ButtonStyle As Integer
  199. Private m_ValueVis As Boolean
  200. Private m_ValueCol As OLE_COLOR
  201.  
  202. Private rc As RECT
  203. Private W As Long, H As Long
  204. Private regMain As Long, rgn1 As Long
  205. Private R As Long, l As Long, t As Long, B As Long
  206.  
  207.     
  208. Private Sub UserControl_Initialize()
  209.     m_ValueVis = m_def_ValueVis
  210.     m_ValueCol = m_def_ValueCol
  211.     m_ButtonStyle = m_def_ButtonStyle
  212.     m_ArrowStyle = m_def_ArrowStyle
  213.     
  214. End Sub
  215.  
  216.     
  217. Private Sub UserControl_InitProperties()
  218.     mMin = 0
  219.     mMax = 100
  220.     mValue = 0
  221.     mSliderWH = 400
  222.     mBarBaseCol = vbBlue
  223.     mBarMidCol = &HFFFFFE
  224.     PosSlider
  225. End Sub
  226.  
  227.     
  228. Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  229.     With PropBag
  230.         mMin = .ReadProperty("Min", 0)
  231.         mMax = .ReadProperty("Max", 100)
  232.         mValue = .ReadProperty("Value", 50)
  233.         mSliderWH = .ReadProperty("SliderWid_Height", 315)
  234.         BarBaseCol = .ReadProperty("BarBaseCol", vbBlue)
  235.         BarMidCol = .ReadProperty("BarMidCol", mBarMidCol)
  236.         ValueVis = .ReadProperty("ValueVis", m_def_ValueVis)
  237.         ValueCol = .ReadProperty("ValueCol", m_def_ValueCol)
  238.         ButtonStyle = .ReadProperty("ButtonStyle", m_def_ButtonStyle)
  239.         ArrowStyle = .ReadProperty("ArrowStyle", m_def_ArrowStyle)
  240.     End With
  241.     PosSlider
  242. End Sub
  243.  
  244.     
  245. Private Sub UserControl_Resize()
  246.     
  247.     GetClientRect UserControl.hwnd, rc
  248.     With rc
  249.         R = .Right - 1: l = .Left: t = .Top: B = .Bottom
  250.         W = .Right: H = .Bottom
  251.     End With
  252.     
  253.     UserControl.Cls
  254.     UserControl.Height = 306
  255.     
  256.     If ButtonStyle = 0 Then
  257.         cmdLeft.Visible = True
  258.         picLeft.Visible = False
  259.         cmdRight.Visible = True
  260.         picRight.Visible = False
  261.         cmdRight.Left = UserControl.ScaleWidth - 20
  262.         cmdRight.Top = 3
  263.         cmdLeft.Top = 3
  264.     Else
  265.         cmdLeft.Visible = False
  266.         picLeft.Visible = True
  267.         cmdRight.Visible = False
  268.         picRight.Visible = True
  269.         picRight.Left = UserControl.ScaleWidth - 20
  270.         picRight.Top = 3
  271.         picLeft.Top = 3
  272.     End If
  273.     
  274.     If ValueVis = True Then
  275.         picLeft.Left = 24
  276.         cmdLeft.Left = 24
  277.         pic1.Left = 40
  278.         pic1.Width = UserControl.ScaleWidth - 20 - (picRight.Width * 2 - 3)
  279.     Else
  280.         picLeft.Left = 4
  281.         cmdLeft.Left = 4
  282.         pic1.Left = 20
  283.         pic1.Width = UserControl.ScaleWidth - 20 - (picRight.Width * 2 - 22)
  284.     End If
  285.     DrawBase
  286.     pic1.Top = 6
  287.     Label1.FontName = "Tahoma"
  288.     Label1.FontSize = 6
  289.     DrawBar
  290. End Sub
  291.  
  292.     
  293. Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  294.     With PropBag
  295.         .WriteProperty "Min", mMin, 0
  296.         .WriteProperty "Max", mMax, 100
  297.         .WriteProperty "Value", mValue, 50
  298.         .WriteProperty "SliderWid_Height", mSliderWH, 315
  299.         .WriteProperty "BarBaseCol", mBarBaseCol, vbBlue
  300.         .WriteProperty "BarMidCol", mBarMidCol, vbWhite
  301.         .WriteProperty "ValueVis", m_ValueVis, m_def_ValueVis
  302.         .WriteProperty "ValueCol", m_ValueCol, m_def_ValueCol
  303.         .WriteProperty "ButtonStyle", m_ButtonStyle, m_def_ButtonStyle
  304.         .WriteProperty "ArrowStyle", m_ArrowStyle, m_def_ArrowStyle
  305.     End With
  306. End Sub
  307.  
  308.     
  309. Private Sub pic1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  310.     Dim lngPos                  As Long
  311.     Dim sglScale                As Single
  312.     
  313.     With imgKnob
  314.         lngPos = ((x - mSliderWH / 2) \ 15) * 16
  315.         If lngPos < 0 Then
  316.             lngPos = 0
  317.         ElseIf lngPos > pic1.ScaleWidth - mSliderWH Then
  318.             lngPos = pic1.ScaleWidth - mSliderWH
  319.         End If
  320.         
  321.         .Left = lngPos
  322.         sglScale = (pic1.ScaleWidth - mSliderWH) / (mMax - mMin)
  323.         mValue = (lngPos / sglScale) + mMin
  324.         RaiseEvent Changed
  325.     End With
  326.     PosSlider
  327.     If ValueVis = False Then Exit Sub
  328.     Label1.Caption = mValue
  329.     
  330. End Sub
  331.  
  332.     
  333. Private Sub imgKnob_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  334.     
  335.     Dim lngPos                  As Long
  336.     Dim sglScale                As Single
  337.     
  338.     If Button = vbLeftButton Then
  339.         With imgKnob
  340.             lngPos = ((.Left + x - mSliderWH / 2) \ 15) * 16
  341.             If lngPos < 0 Then
  342.                 lngPos = 0
  343.             ElseIf lngPos > pic1.ScaleWidth - mSliderWH Then
  344.                 lngPos = pic1.ScaleWidth - mSliderWH
  345.             End If
  346.             
  347.             .Left = lngPos
  348.             sglScale = ((pic1.ScaleWidth - mSliderWH)) / (mMax - mMin)
  349.             mValue = (lngPos / sglScale) + mMin
  350.             RaiseEvent Changed
  351.             If ValueVis = False Then Exit Sub
  352.             Label1.Caption = mValue
  353.         End With
  354.     End If
  355.     
  356. End Sub
  357.  
  358. Private Sub cmdLeft_Click()
  359.     Value = Value - 1
  360.     pic1.SetFocus
  361.     If ValueVis = False Then Exit Sub
  362.     Label1.Caption = mValue
  363. End Sub
  364.  
  365. Private Sub cmdRight_Click()
  366.     Value = Value + 1
  367.     pic1.SetFocus
  368.     If ValueVis = False Then Exit Sub
  369.     Label1.Caption = mValue
  370. End Sub
  371.  
  372. Private Function PosSlider()
  373.     
  374.     Dim sglScale                As Single
  375.     
  376.     With imgKnob
  377.         If mMax - mMin <> 0 Then
  378.             sglScale = (pic1.ScaleWidth - mSliderWH) / (mMax - mMin)
  379.             .Left = (mValue - mMin) * sglScale
  380.         End If
  381.     End With
  382. End Function
  383.  
  384. Private Sub DrawBase()
  385.     Dim pt As POINTAPI, Pen As Long, hPen As Long
  386.     Dim I As Long, ColorR As Long, ColorG As Long, ColorB As Long
  387.     Dim hBrush As Long
  388.     
  389.     With UserControl
  390.         
  391.         hBrush = CreateSolidBrush(RGB(0, 60, 116))
  392.         FrameRect UserControl.hDC, rc, hBrush
  393.         DeleteObject hBrush
  394.         
  395.         'Left top corner
  396.         SetPixel .hDC, l, t + 1, RGB(122, 149, 168)
  397.         SetPixel .hDC, l + 1, t + 1, RGB(37, 87, 131)
  398.         SetPixel .hDC, l + 1, t, RGB(122, 149, 168)
  399.         
  400.         'right top corner
  401.         SetPixel .hDC, R - 1, t, RGB(122, 149, 168)
  402.         SetPixel .hDC, R - 1, t + 1, RGB(37, 87, 131)
  403.         SetPixel .hDC, R, t + 1, RGB(122, 149, 168)
  404.         
  405.         'left bottom corner
  406.         SetPixel .hDC, l, B - 2, RGB(122, 149, 168)
  407.         SetPixel .hDC, l + 1, B - 2, RGB(37, 87, 131)
  408.         SetPixel .hDC, l + 1, B - 1, RGB(122, 149, 168)
  409.         
  410.         'right bottom corner
  411.         SetPixel .hDC, R, B - 2, RGB(122, 149, 168)
  412.         SetPixel .hDC, R - 1, B - 2, RGB(37, 87, 131)
  413.         SetPixel .hDC, R - 1, B - 1, RGB(122, 149, 168)
  414.     End With
  415.     
  416.     DeleteObject regMain
  417.     regMain = CreateRectRgn(0, 0, W, H)
  418.     rgn1 = CreateRectRgn(0, 0, 1, 1)            'Left top coner
  419.     CombineRgn regMain, regMain, rgn1, RGN_DIFF
  420.     DeleteObject rgn1
  421.     rgn1 = CreateRectRgn(0, H - 1, 1, H)      'Left bottom corner
  422.     CombineRgn regMain, regMain, rgn1, RGN_DIFF
  423.     DeleteObject rgn1
  424.     rgn1 = CreateRectRgn(W - 1, 0, W, 1)      'Right top corner
  425.     CombineRgn regMain, regMain, rgn1, RGN_DIFF
  426.     DeleteObject rgn1
  427.     rgn1 = CreateRectRgn(W - 1, H - 1, W, H) 'Right bottom corner
  428.     CombineRgn regMain, regMain, rgn1, RGN_DIFF
  429.     DeleteObject rgn1
  430.     SetWindowRgn UserControl.hwnd, regMain, True
  431.     
  432.     'draw screws
  433.     'UserControl.DrawWidth = 1
  434.     'UserControl.Circle (8, UserControl.ScaleHeight - 10), 3, vbBlack        'left screw bottom
  435.     'UserControl.Line (8, UserControl.ScaleHeight - 12)-(9, UserControl.ScaleHeight - 6), &H404040
  436.     'UserControl.Circle (UserControl.ScaleWidth - 8, UserControl.ScaleHeight - 10), 3, vbBlack        'right screw bottom
  437.     'UserControl.Line (UserControl.ScaleWidth - 10, UserControl.ScaleHeight - 12)-(UserControl.ScaleWidth - 5, UserControl.ScaleHeight - 7), &H404040
  438. End Sub
  439.  
  440. Private Sub DrawBar()
  441.     Dim kf As Integer
  442.     pic1.ScaleMode = 3
  443.     For kf = 0 To 7
  444.         Select Case kf
  445.             Case 0, 7
  446.                 pic1.ForeColor = BlendColors(BarBaseCol, BarMidCol, 45)
  447.             Case 1, 6
  448.                 pic1.ForeColor = BlendColors(BarBaseCol, BarMidCol, 62)
  449.             Case 2, 5
  450.                 pic1.ForeColor = BlendColors(BarBaseCol, BarMidCol, 72)
  451.             Case 3
  452.                 pic1.ForeColor = BlendColors(BarBaseCol, BarMidCol, 100)
  453.             Case 4
  454.                 pic1.ForeColor = BlendColors(BarBaseCol, BarMidCol, 82)
  455.         End Select
  456.         pic1.Line (0, kf)-(pic1.ScaleWidth - 12, kf)
  457.     Next kf
  458.     pic1.Line (0, 0)-(0, 8)
  459.     pic1.Line (pic1.ScaleWidth - 12, 0)-(pic1.ScaleWidth - 12, 8)
  460.     pic1.ScaleMode = 1
  461. End Sub
  462.  
  463. Private Sub picRight_Click()
  464.     Value = Value + 1
  465.     pic1.SetFocus
  466.     If ValueVis = False Then Exit Sub
  467.     Label1.Caption = mValue
  468. End Sub
  469.  
  470. Private Sub picLeft_Click()
  471.     Value = Value - 1
  472.     pic1.SetFocus
  473.     If ValueVis = False Then Exit Sub
  474.     Label1.Caption = mValue
  475. End Sub
  476.  
  477. Public Sub GetRGB(R As Integer, G As Integer, B As Integer, ByVal Color As Long)
  478.     Dim TempValue As Long
  479.     
  480.     TranslateColor Color, 0, TempValue
  481.     
  482.     R = TempValue And &HFF&
  483.     G = (TempValue And &HFF00&) / 2 ^ 8
  484.     B = (TempValue And &HFF0000) / 2 ^ 16
  485. End Sub
  486.  
  487. Public Function BlendColors(ByVal Color1 As Long, ByVal Color2 As Long, ByVal Percentage As Single) As Long
  488.     On Error Resume Next
  489.     
  490.     Dim R(2) As Integer, G(2) As Integer, B(2) As Integer
  491.     Dim fPercentage(2) As Single
  492.     Dim DAmt(2) As Single
  493.     
  494.     Percentage = SetBound(Percentage, 0, 100)
  495.     
  496.     GetRGB R(0), G(0), B(0), Color1
  497.     GetRGB R(1), G(1), B(1), Color2
  498.     
  499.     DAmt(0) = R(1) - R(0): fPercentage(0) = (DAmt(0) / 100) * Percentage
  500.     DAmt(1) = G(1) - G(0): fPercentage(1) = (DAmt(1) / 100) * Percentage
  501.     DAmt(2) = B(1) - B(0): fPercentage(2) = (DAmt(2) / 100) * Percentage
  502.     
  503.     R(2) = R(0) + fPercentage(0)
  504.     G(2) = G(0) + fPercentage(1)
  505.     B(2) = B(0) + fPercentage(2)
  506.     
  507.     BlendColors = RGB(R(2), G(2), B(2))
  508. End Function
  509.  
  510. Private Function SetBound(ByVal Num As Single, ByVal MinNum As Single, ByVal MaxNum As Single) As Single
  511.     
  512.     If Num < MinNum Then
  513.         SetBound = MinNum
  514.     ElseIf Num > MaxNum Then
  515.         SetBound = MaxNum
  516.     Else
  517.         SetBound = Num
  518.     End If
  519. End Function
  520.  
  521. Public Property Get ArrowStyle() As eArrowStyle
  522.     ArrowStyle = m_ArrowStyle
  523. End Property
  524.  
  525. Public Property Let ArrowStyle(NewArrowStyle As eArrowStyle)
  526.     m_ArrowStyle = NewArrowStyle
  527.     If m_ArrowStyle = 0 Then
  528.         cmdLeft.Picture = Image1.Picture
  529.         cmdRight.Picture = Image2.Picture
  530.         picLeft.Picture = Image1.Picture
  531.         picRight.Picture = Image2.Picture
  532.     Else
  533.         cmdLeft.Picture = Image3.Picture
  534.         cmdRight.Picture = Image4.Picture
  535.         picLeft.Picture = Image3.Picture
  536.         picRight.Picture = Image4.Picture
  537.     End If
  538.     PropertyChanged "ArrowStyle"
  539.     UserControl_Resize
  540. End Property
  541.  
  542. Public Property Get BarBaseCol() As OLE_COLOR
  543.     BarBaseCol = mBarBaseCol
  544. End Property
  545.  
  546. Public Property Let BarBaseCol(NewValue As OLE_COLOR)
  547.     mBarBaseCol = NewValue
  548.     PropertyChanged "BarBaseCol"
  549.     UserControl_Resize
  550.     DrawBar
  551. End Property
  552.  
  553. Public Property Get BarMidCol() As OLE_COLOR
  554.     BarMidCol = mBarMidCol
  555. End Property
  556.  
  557. Public Property Let BarMidCol(NewValue As OLE_COLOR)
  558.     mBarMidCol = NewValue
  559.     If mBarMidCol = vbWhite Then mBarMidCol = &HFFFFFE  ' Does'nt like vbWhite (HFFFFFF),I think its because of something in the BlendColors Procedure
  560.     PropertyChanged "BarMidCol"
  561.     UserControl_Resize
  562.     DrawBar
  563. End Property
  564.  
  565. Public Property Get ButtonStyle() As ebuttonstyle
  566.     ButtonStyle = m_ButtonStyle
  567. End Property
  568.  
  569. Public Property Let ButtonStyle(NewButtonStyle As ebuttonstyle)
  570.     m_ButtonStyle = NewButtonStyle
  571.     PropertyChanged "ButtonStyle"
  572.     UserControl_Resize
  573. End Property
  574.  
  575. Public Property Get Min() As Long
  576.     Min = mMin
  577. End Property
  578.  
  579. Public Property Let Min(NewValue As Long)
  580.     
  581.     If NewValue <= mMax Then
  582.         mMin = NewValue
  583.         If mValue < mMin Then
  584.             mValue = mMin
  585.             PropertyChanged "Value"
  586.         End If
  587.         PosSlider
  588.         PropertyChanged "Min"
  589.     End If
  590. End Property
  591.  
  592. Public Property Get Max() As Long
  593.     Max = mMax
  594. End Property
  595.  
  596. Public Property Let Max(NewValue As Long)
  597.     If NewValue > mMin Then
  598.         mMax = NewValue
  599.         If mValue > mMax Then
  600.             mValue = mMax
  601.             PropertyChanged "Value"
  602.         End If
  603.         PosSlider
  604.         PropertyChanged "Max"
  605.     End If
  606. End Property
  607.  
  608. Public Property Get SliderWid_Height() As Long
  609.     SliderWid_Height = mSliderWH
  610. End Property
  611.  
  612. Public Property Let SliderWid_Height(NewValue As Long)
  613.     
  614.     mSliderWH = NewValue
  615.     pic1.Width = mSliderWH
  616.     pic1.Height = UserControl.Height
  617.     PosSlider
  618.     PropertyChanged "SliderWid_Height"
  619.     UserControl_Resize
  620. End Property
  621.  
  622. Public Property Get Value() As Long
  623.     Value = mValue
  624. End Property
  625.  
  626. Public Property Let Value(NewValue As Long)
  627.     
  628.     If NewValue < mMin Then
  629.         NewValue = mMin
  630.         
  631.     ElseIf NewValue > mMax Then
  632.         NewValue = mMax
  633.     End If
  634.     
  635.     mValue = NewValue
  636.     PosSlider
  637.     
  638.     PropertyChanged "Value"
  639.     RaiseEvent Changed
  640.     
  641. End Property
  642.  
  643. Public Property Get ValueVis() As Boolean
  644.     ValueVis = m_ValueVis
  645. End Property
  646.  
  647. Public Property Let ValueVis(NewValueVis As Boolean)
  648.     m_ValueVis = NewValueVis
  649.     Label1.Visible = m_ValueVis
  650.     PropertyChanged "ValueVis"
  651.     UserControl_Resize
  652. End Property
  653.  
  654. Public Property Get ValueCol() As OLE_COLOR
  655.     ValueCol = m_ValueCol
  656. End Property
  657.  
  658. Public Property Let ValueCol(NewValueCol As OLE_COLOR)
  659.     m_ValueCol = NewValueCol
  660.     Label1.ForeColor = m_ValueCol
  661.     PropertyChanged "ValueCol"
  662.     UserControl_Resize
  663. End Property
  664.     
  665.     
  666.  
  667.