Ampel programmieren via CodeModul, KlassenModul | |
Herkömmliche Realisierung mit Codemodul | Benutzen eines Klassenmoduls |
'Referenzierung des Objekts. | |
Private ampel As CAmpel | |
Private Sub Form_Load() | Private Sub Form_Load() |
'Breite und Höhe des Formulars. | 'Breite und Höhe des Formulars. |
Me.Width = 1300 | Me.Width = 1300 |
Me.Height = 3100 | Me.Height = 3100 |
'Durchgehendes Füllmuster. | 'Instanzierung des Objekts. |
Me.FillStyle = vbSolid | Set ampel = New CAmpel |
'Zu Beginn Ampel auf Rot. | 'Zu Beginn Ampel auf Rot. |
z = 0 | Call ampel.initAmpel(Me, 0, 0) |
'Los geht's. | 'Los geht's. |
Call Timer1_Timer | Timer1.Interval = 1 |
End Sub | End Sub |
Private Sub Timer1_Timer() | Private Sub Timer1_Timer() |
'Zeiten der Ampelphasen. | 'Zeiten der Ampelphasen. |
Call changeState(2000, 1500, 1000) | Call ampel.changeState(Timer1, 2000, 1500, 1000) |
End Sub | End Sub |
Private Sub Form_Click() | Private Sub Form_Click() |
Unload Me | Unload Me |
End Sub | End Sub |
Private Sub Form_Unload(Cancel As Integer) | |
Set ampel = Nothing | |
End Sub | |
Codemodul | Klassenmodul CAmpel |
Option Explicit | Option Explicit |
Const xp = 0, yp = 0 'Position linke obere Ecke (in Twips). | Private xp%, yp%, z% |
Public z% 'Zustandsvariable für die Farbe. | Private frm As Form |
Public Sub initAmpel(f As Form, x%, y%) | |
Set frm = f | |
frm.FillStyle = vbSolid | |
xp = x: yp = y | |
End Sub | |
Public Sub changeState(tRot%, tGelb%, tGrün%) | Public Sub changeState(tim As Timer, tRot%, tGelb%, tGrün%) |
'Ändert Ampelzustand. | 'Ändert Ampelzustand. |
'Als Parameter werden Schaltzeiten der drei Phasen übergeben. | 'Als Parameter werden Schaltzeiten der drei Phasen übergeben. |
Select Case z | Select Case z |
Case 0: drawAmpel vbRed, vbButtonFace, vbButtonFace | Case 0: drawAmpel vbRed, vbButtonFace, vbButtonFace |
frmAmpel.Timer1.Interval = tRot | tim.Interval = tRot |
Case 1: drawAmpel vbButtonFace, vbYellow, vbButtonFace | Case 1: drawAmpel vbButtonFace, vbYellow, vbButtonFace |
frmAmpel.Timer1.Interval = tGelb | tim.Interval = tGelb |
Case 2: drawAmpel vbButtonFace, vbButtonFace, vbGreen | Case 2: drawAmpel vbButtonFace, vbButtonFace, vbGreen |
frmAmpel.Timer1.Interval = tGrün | tim.Interval = tGrün |
End Select | End Select |
z = z + 1 | z = z + 1 |
If z = 3 Then z = 0 | If z = 3 Then z = 0 |
End Sub | End Sub |
'Zeichnet Ampel. | 'Zeichnet Ampel. |
Private Sub drawAmpel(fO&, fM&, fU&) | Private Sub drawAmpel(fO&, fM&, fU&) |
'Als Parameter werden die Farben der drei Lampen übergeben. | 'Als Parameter werden die Farben der drei Lampen übergeben. |
'Ampelkasten. | 'Ampelkasten. |
frmAmpel.Line (xp, yp)-(xp + 800, yp + 1800), vbBlack, BF | frm.Line (xp, yp)-(xp + 800, yp + 1800), vbBlack, BF |
'Füllfarbe obere Lampe. | 'Füllfarbe obere Lampe. |
frmAmpel.FillColor = fO | frm.FillColor = fO |
frmAmpel.Circle (xp + 40, yp + 30), 25 | frm.Circle (xp + 40, yp + 30), 25 |
'... mittlere Lampe. | '... mittlere Lampe. |
frmAmpel.FillColor = fM | frm.FillColor = fM |
frmAmpel.Circle (xp + 40, yp + 90), 25 | frm.Circle (xp + 40, yp + 90), 25 |
'... untere Lampe. | '... untere Lampe. |
frmAmpel.FillColor = fU | frm.FillColor = fU |
frmAmpel.Circle (xp + 40, yp + 150), 25 | frm.Circle (xp + 40, yp + 150), 25 |
End Sub | End Sub |
Mehr Tipps: Verwenden typisierter Dateien
Sponsoren und Investoren sind jederzeit herzlich willkommen! Wenn Sie die Information(en) auf diesen Seiten interessant fanden, freuen wir uns über Ihren Förderbeitrag. Empfehlen Sie uns auch gerne in Ihren Netzwerken. Herzlichen Dank!
Nutzen Sie unsere Suchfunktion:
Nach oben
Sitemap
Impressum
Datenschutz