Este programa está desarrollado en
Microsoft Visual Basic 2005 y simula un semáforo de cuatro caras. A
continuación se presentan unas impresiones de pantalla del programa en
ejecución.




OBJETOS DEL PROGRAMA
En tiempo de diseño, insertar los
siguientes objetos con las propiedades que se muestran a continuación:
|
OBJETO
|
PROPIEDAD
|
VALOR
|
|
Form1 System.Windows.Forms.Form
|
(Name)
|
Form1
|
|
|
AutoScaleMode
|
Font
|
|
|
BackgroundImage
|
System.Drawing.Bitmap
|
|
|
FormBorderStyle
|
FixedSingle
|
|
|
MaximizeBox
|
False
|
|
|
Size
|
790, 590
|
|
|
StartPosition
|
CenterScreen
|
|
|
Text
|
Semáforo de 4 caras
|
|
Label 1 System.Windows.Forms.Label
|
(Name)
|
Label1
|
|
|
AutoSize
|
True
|
|
|
BackColor
|
Transparent
|
|
|
Font
|
Microsoft Sans Serif, 9.75pt
|
|
|
ForeColor
|
White
|
|
|
Location
|
582, 511
|
|
|
Modifiers
|
Friend
|
|
|
Size
|
202, 48
|
|
|
TabIndex
|
0
|
|
|
Text
|
Jaime Montoya
webmaster@jaimemontoya.com
www.jaimemontoya.com
|
|
Timer1 System.Windows.Forms.Timer
|
(Name)
|
Timer1
|
|
|
Enabled
|
True
|
|
|
Interval
|
1000
|
|
|
Modifiers
|
Friend
|
|
Timer2 System.Windows.Forms.Timer
|
(Name)
|
Timer2
|
|
|
Enabled
|
True
|
|
|
Interval
|
1000
|
|
|
Modifiers
|
Friend
|
|
ImageList1 System.Windows.Forms.ImageList
|
(Name)
|
ImageList1
|
|
|
Modifiers
|
Friend
|
|
|
TransparentColor
|
Transparent
|
CÓDIGO DEL PROGRAMA

CÓDIGO DEL MÓDULO Module1.vb

Module
Module1
Public tiempo1 As
Integer
Public tiempo2 As
Integer
End Module
CÓDIGO DE LA CLASE
semaforoClass.vb

Public
Class semaforoClass
Inherits Panel
Public cara1 As
semaforoClass
Public cara2 As
semaforoClass
Public cara3 As
semaforoClass
Public cara4 As
semaforoClass
End Class
CÓDIGO DEL FORMULARIO
Form1.vb

Public
Class Form1
Public Sub
encender_esteoeste()
If
tiempo1 = 3 Then 'Para
el verde.
semaforo.cara4.BackgroundImage = Me.ImageList1.Images(4)
semaforo.cara4.Left
= semaforo.cara4.Left + 17
semaforo.cara2.BackgroundImage = Me.ImageList1.Images(4)
semaforo.cara2.Left
= semaforo.cara2.Left - 17
End If
If tiempo1 =
8 Then 'Para el
amarillo.
semaforo.cara4.BackgroundImage = Me.ImageList1.Images(5)
semaforo.cara4.Left =
semaforo.cara4.Left + 17
semaforo.cara2.BackgroundImage = Me.ImageList1.Images(5)
semaforo.cara2.Left
= semaforo.cara2.Left - 17
End If
If tiempo1 = 10 Then
'Pare el rojo.
semaforo.cara4.BackgroundImage = Me.ImageList1.Images(6)
semaforo.cara4.Left
= semaforo.cara4.Left + 17
semaforo.cara2.BackgroundImage = Me.ImageList1.Images(6)
semaforo.cara2.Left
= semaforo.cara2.Left - 17
End If
If tiempo1 = 20 Then
semaforo.cara4.BackgroundImage = Me.ImageList1.Images(2)
semaforo.cara4.Left
= semaforo.cara4.Left - 51
semaforo.cara2.BackgroundImage = Me.ImageList1.Images(0)
semaforo.cara2.Left
= semaforo.cara2.Left + 51
tiempo1 = -1
End If
tiempo1 += 1
End Sub
Public Sub encender_nortesur()
If tiempo2 =
10 Then 'Para el
verde abajo.
semaforo.cara1.BackgroundImage = Me.ImageList1.Images(3)
semaforo.cara1.Top
= semaforo.cara1.Top - 17 - 17 - 17
semaforo.cara3.BackgroundImage = Me.ImageList1.Images(1)
semaforo.cara3.Top
= semaforo.cara3.Top + 17 + 17 + 17
End If
If tiempo2 =
13 Then 'Para el
verde.
semaforo.cara1.BackgroundImage = Me.ImageList1.Images(4)
semaforo.cara1.Top = semaforo.cara1.Top
+ 17
semaforo.cara3.BackgroundImage = Me.ImageList1.Images(4)
semaforo.cara3.Top
= semaforo.cara3.Top - 17
End If
If tiempo2 = 18 Then
'Pare el amarillo.
semaforo.cara1.BackgroundImage = Me.ImageList1.Images(5)
semaforo.cara1.Top
= semaforo.cara1.Top + 17
semaforo.cara3.BackgroundImage = Me.ImageList1.Images(5)
semaforo.cara3.Top
= semaforo.cara3.Top - 17
End If
If tiempo2 = 20 Then
semaforo.cara1.BackgroundImage = Me.ImageList1.Images(6)
semaforo.cara1.Top
= semaforo.cara1.Top + 17
semaforo.cara3.BackgroundImage = Me.ImageList1.Images(6)
semaforo.cara3.Top
= semaforo.cara3.Top - 17
tiempo2 = -1
End If
tiempo2 += 1
End Sub
Public semaforo As
New semaforoClass
Private Sub
Timer1_Tick(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
Timer1.Tick
encender_esteoeste()
End Sub
Private Sub
Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
tiempo1 = 0
Dim objDraw1 As
System.Drawing.Drawing2D.GraphicsPath = New
System.Drawing.Drawing2D.GraphicsPath
objDraw1.AddEllipse(0, 0, 16, 16)
semaforo.cara1 = New semaforoClass
semaforo.cara1.Region = New Region(objDraw1)
semaforo.cara1.Size = New Size(16, 16)
semaforo.cara1.BackgroundImage = Me.ImageList1.Images(6)
semaforo.cara1.Location = New Point(410, 123)
Me.Controls.Add(semaforo.cara1)
Dim objDraw2 As
System.Drawing.Drawing2D.GraphicsPath = New
System.Drawing.Drawing2D.GraphicsPath
objDraw2.AddEllipse(0, 0, 16, 16)
semaforo.cara2 = New semaforoClass
semaforo.cara2.Region = New Region(objDraw2)
semaforo.cara2.Size = New Size(16, 16)
semaforo.cara2.BackgroundImage = Me.ImageList1.Images(0)
semaforo.cara2.Location = New Point(606, 271)
Me.Controls.Add(semaforo.cara2)
Dim objDraw3 As System.Drawing.Drawing2D.GraphicsPath
= New System.Drawing.Drawing2D.GraphicsPath
objDraw3.AddEllipse(0, 0, 16, 16)
semaforo.cara3 = New semaforoClass
semaforo.cara3.Region = New Region(objDraw1)
semaforo.cara3.Size = New Size(16, 16)
semaforo.cara3.BackgroundImage = Me.ImageList1.Images(6)
semaforo.cara3.Location = New Point(408, 419)
Me.Controls.Add(semaforo.cara3)
Dim objDraw4 As
System.Drawing.Drawing2D.GraphicsPath = New
System.Drawing.Drawing2D.GraphicsPath
objDraw4.AddEllipse(0, 0, 16, 16)
semaforo.cara4 = New semaforoClass
semaforo.cara4.Region = New Region(objDraw4)
semaforo.cara4.Size = New Size(16, 16)
semaforo.cara4.BackgroundImage = Me.ImageList1.Images(2)
semaforo.cara4.Location = New Point(210, 270)
Me.Controls.Add(semaforo.cara4)
End Sub
Private Sub
Timer2_Tick(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
Timer2.Tick
encender_nortesur()
End Sub
End Class
Jaime Montoya
webmaster@jaimemontoya.com
www.jaimemontoya.com
Santa Ana, 5 de julio de 2008
El Salvador