home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD102739292000.psc / Knob.ctl < prev    next >
Encoding:
Text File  |  2000-09-29  |  2.5 KB  |  105 lines

  1. VERSION 5.00
  2. Begin VB.UserControl Knob 
  3.    ClientHeight    =   600
  4.    ClientLeft      =   0
  5.    ClientTop       =   0
  6.    ClientWidth     =   585
  7.    ScaleHeight     =   600
  8.    ScaleWidth      =   585
  9.    Begin VB.PictureBox Knob1 
  10.       AutoRedraw      =   -1  'True
  11.       BorderStyle     =   0  'None
  12.       FillColor       =   &H00404040&
  13.       FillStyle       =   0  'Solid
  14.       Height          =   495
  15.       Left            =   0
  16.       ScaleHeight     =   495
  17.       ScaleWidth      =   495
  18.       TabIndex        =   0
  19.       Top             =   0
  20.       Width           =   495
  21.    End
  22. End
  23. Attribute VB_Name = "Knob"
  24. Attribute VB_GlobalNameSpace = False
  25. Attribute VB_Creatable = True
  26. Attribute VB_PredeclaredId = False
  27. Attribute VB_Exposed = False
  28. Dim Value As Integer, oldX As Single, oldY As Single, K1 As New CLSKNOB
  29. Dim P_Size As Integer, P_Mode As Integer, P_Step As Integer
  30.  
  31. Event Changed()
  32. Sub SetBackColor(color As Long)
  33. Knob1.BackColor = color
  34. K1.drawKnob Knob1, Value, P_Mode, P_Step, P_Size
  35. End Sub
  36. Sub SetMode(NewMode As Integer)
  37. P_Mode = NewMode
  38. End Sub
  39. Sub SetStep(NewStep As Integer)
  40. P_Step = NewStep
  41. End Sub
  42. Sub SetVal(NewVal As Integer)
  43. K1.SetValue P_Mode, NewVal
  44. K1.drawKnob Knob1, Value, P_Mode, P_Step, P_Size
  45. RaiseEvent Changed
  46. End Sub
  47. Function KnobValue() As Integer
  48. KnobValue = K1.GetValue(P_Mode)
  49. End Function
  50.  
  51. Private Sub Knob1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  52. If Button = 1 Then
  53.  
  54. If Y < Knob1.ScaleHeight / 2 Then
  55. If X > oldX Then Value = Value + 1
  56. If X < oldX Then Value = Value - 1
  57. Else
  58. If X > oldX Then Value = Value - 1
  59. If X < oldX Then Value = Value + 1
  60. End If
  61.  
  62. If X < Knob1.ScaleWidth / 2 Then
  63. If Y > oldY Then Value = Value - 1
  64. If Y < oldY Then Value = Value + 1
  65. Else
  66. If Y > oldY Then Value = Value + 1
  67. If Y < oldY Then Value = Value - 1
  68. End If
  69.  
  70. K1.drawKnob Knob1, Value, P_Mode, P_Step, P_Size
  71.  
  72. RaiseEvent Changed
  73.  
  74. If Value > 100 Then Value = 50
  75. If Value < -100 Then Value = -50
  76.  
  77. oldX = X
  78. oldY = Y
  79. End If
  80. End Sub
  81.  
  82.  
  83. Private Sub UserControl_Initialize()
  84. P_Size = 0
  85. P_Mode = 1
  86. P_Step = 1
  87. K1.BuildTable
  88. K1.drawKnob Knob1, Value, P_Mode, P_Step, P_Size
  89. End Sub
  90.  
  91. Private Sub UserControl_Resize()
  92. Knob1.Height = UserControl.Height
  93. Knob1.Width = UserControl.Width
  94.  
  95. Select Case Knob1.Height
  96. Case Is <= 495: P_Size = 0
  97. Case Is <= 615: P_Size = 1
  98. Case Is <= 735: P_Size = 2
  99. Case Is <= 855: P_Size = 3
  100. Case Else: P_Size = 4
  101. End Select
  102.  
  103. K1.drawKnob Knob1, Value, P_Mode, P_Step, P_Size
  104. End Sub
  105.