sep-05 slide:1 activex controls in vb activex controls in vb6
TRANSCRIPT
![Page 1: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/1.jpg)
Sep-05 Slide:1ActiveX Controls in VB
ActiveX Controls in VB6
![Page 2: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/2.jpg)
Sep-05 Slide:2ActiveX Controls in VB
What are ActiveX Controls?
• Custom UI Controls• Which you can design and add to the
toolbox• And then use in applications
![Page 3: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/3.jpg)
Sep-05 Slide:3ActiveX Controls in VB
Creating Simple ActiveX Controls
• Start with New Project.. ActiveX Control• Design/program as if a form• Add a project to Group – test it in that• Finally, produce a compiled OCX file• For example, a simple clock control..
![Page 4: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/4.jpg)
Sep-05 Slide:4ActiveX Controls in VB
The Clock Control 1
![Page 5: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/5.jpg)
Sep-05 Slide:5ActiveX Controls in VB
Clock Control 2
• It will work by having a Timer• Which ticks every second• And gets system time• And displays it in a label
![Page 6: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/6.jpg)
Sep-05 Slide:6ActiveX Controls in VB
Clock Control 3
![Page 7: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/7.jpg)
Sep-05 Slide:7ActiveX Controls in VB
Clcok Control 4 - Testing
![Page 8: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/8.jpg)
Sep-05 Slide:8ActiveX Controls in VB
Clock Control 5 – Normal exe project added
![Page 9: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/9.jpg)
Sep-05 Slide:9ActiveX Controls in VB
Clock Control 6 – Set Test as Startup
Or when you Run it it will start in a browser
![Page 10: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/10.jpg)
Sep-05 Slide:10ActiveX Controls in VB
Clock Control 7 – The control in use
![Page 11: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/11.jpg)
Sep-05 Slide:11ActiveX Controls in VB
Clock control 7 – Give it a name
![Page 12: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/12.jpg)
Sep-05 Slide:12ActiveX Controls in VB
Clock Control 8 – Make .ocx file
![Page 13: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/13.jpg)
Sep-05 Slide:13ActiveX Controls in VB
Clock Control 8 – Adding Control in a new project
![Page 14: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/14.jpg)
Sep-05 Slide:14ActiveX Controls in VB
ActiveX Exercise 1
• Make a Clock control like this but..• Have 3 fields showing hour, minute and
second• Use hour() minute() and second() functions
![Page 15: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/15.jpg)
Sep-05 Slide:15ActiveX Controls in VB
Controls with properties
• Most controls have properties used for design
• Example background colour of textbox• And properties for user input• Such as text in a text box• ActiveX usually need the same
![Page 16: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/16.jpg)
Sep-05 Slide:16ActiveX Controls in VB
ActiveX Controls are like Classes (as are forms)
• They have methods• They have private data members• They have property let and get routines• Can set up events
![Page 17: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/17.jpg)
Sep-05 Slide:17ActiveX Controls in VB
Two 'users' of custom controls• One user is the programmer who uses the
control in a form design• The other is the final end-user who uses
that form• You have to write code for both types of
user
![Page 18: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/18.jpg)
Sep-05 Slide:18ActiveX Controls in VB
Properties modified at design-time
• Need public property Let and Get• and private data member for internal
representation• But• property values differ between control
instances• and must 'persist' when Form not in
memory• so must be written to disc somehow• actually stored in the .frm file• this persistence is not automated
![Page 19: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/19.jpg)
Sep-05 Slide:19ActiveX Controls in VB
Example – a spinner control• Input integer values• Buttons to increase/decrease value• Need a StepSize property
![Page 20: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/20.jpg)
Sep-05 Slide:20ActiveX Controls in VB
End-user code
Private Sub Command1_Click()Text1.Text = CInt(Text1.Text) + StepSizeEnd Sub
Private Sub Command2_Click()Text1.Text = CInt(Text1.Text) - StepSizeEnd Sub
![Page 21: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/21.jpg)
Sep-05 Slide:21ActiveX Controls in VB
Dim ssize As Integer
Public Property Let StepSize(val As Integer)ssize = valPropertyChanged "StepSize"End Property
Public Property Get StepSize() As IntegerStepSize = ssizeEnd Property
Private Sub UserControl_WriteProperties(PropBag As PropertyBag) PropBag.WriteProperty "StepSize", StepSize, 0End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag) StepSize = PropBag.ReadProperty("StepSize", 0)End Sub
Private Sub UserControl_Initialize()Text1.Text = 0End Sub
Designer-user code
![Page 22: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/22.jpg)
Sep-05 Slide:22ActiveX Controls in VB
Designer use
![Page 23: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/23.jpg)
Sep-05 Slide:23ActiveX Controls in VB
.FRM contentsVERSION 5.00Object = "*\AspinnerProject.vbp"Begin VB.Form Form1 .. ScaleWidth = 4680 StartUpPosition = 3 'Windows Default Begin Project1.UserControl1 UserControl12 Height = 855 Left = 840 .. _ExtentY = 1508 StepSize = 9 End Begin Project1.UserControl1 UserControl11 Height = 855 .. _ExtentY = 873 StepSize = 5 EndEnd..
![Page 24: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/24.jpg)
Sep-05 Slide:24ActiveX Controls in VB
ActiveX Exercise 2• Write a 'slider' control for numeric
input• When user drags mouse from area,
input is mouse Y• Have textbox and pictureBox• Program the mouseMove event of the
PictureBox, use the Y parameter• Once working.. add a scale property
set at design-time • Then expose a 'Value' property which
allows access to the number in the (Let and Get) and read/write
![Page 25: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/25.jpg)
Sep-05 Slide:25ActiveX Controls in VB
Adding Events to controls
• A control can make an event occur• This would be a 'custom' event for the
control• Designer can then program an event-
handler for it• For example, in the spinner control, could
hav ea BadKey event if non-digit key pressed..
![Page 26: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/26.jpg)
Sep-05 Slide:26ActiveX Controls in VB
Control with Event
..
Public Event Badkey()..
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = 13 Or KeyCode = 8 Then Exit Sub 'Enter or backspaceIf KeyCode < 48 Or KeyCode > 57 Then ' not 0 to 9RaiseEvent BadkeyEnd IfEnd Sub
![Page 27: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/27.jpg)
Sep-05 Slide:27ActiveX Controls in VB
Designer writes event-handler
![Page 28: Sep-05 Slide:1 ActiveX Controls in VB ActiveX Controls in VB6](https://reader033.vdocuments.mx/reader033/viewer/2022061517/56649dd15503460f94ac7dde/html5/thumbnails/28.jpg)
Sep-05 Slide:28ActiveX Controls in VB
ActiveX Control Exercise 3
• Add a 2Click event to the slider control• Triggered when picturebox double-clicked• As designer, use it to zero the value