Arvenius
Grünschnabel
Hallo liebe Tutorials.de Gemeinde.
Ich soll in Informatik ein Programm schreiben. So sieht die Aufgabenstellung aus:
Nun habe ich ein simples Auto als Benutzersteuerelement gebastelt, welches vor und zurück fahren kann, sowie Licht und Warnblinker an und ausschalten kann.
Rein von den Methoden her sollte das ja auch reichen. Wenn sie denn im Benutzersteuerelement selbst vorhanden wären. Wie das allerdings funktioniert... ich habe keine Ahnung. Leider habe ich in der Schule aufgrund einer OP mehrere Wochen gefehlt und stehe nun da wie der Ochs vorm Berg.
Ich poste euch einfach mal mein Auto, vielleicht könnt ihr mir hier und da ja mal ein wenig unter die Arme greifen, bzw. mir sagen, wie ich realisieren kann, was der Lehrer von mir möchte...
Und ja, ich weiß, dass der Code mit dem Guthaben noch nicht richtig funktioniert, das bekomme ich aber sicher allein in den Griff.
Achja, wie man sieht ist das ja jetzt alles im Form1 untergebracht.
Mir gehts eher um die konkrete Aufgabenstellung. Was kann ich wie ins Benutzersteuerelement packen, damit ich zwei Methoden und zwei Eigenschaften ins eben jenes bekomme? Gibts dazu irgendwelche (brauchbaren) Erklärungen oder so?
Vielen vielen Dank schonmal!
Ich soll in Informatik ein Programm schreiben. So sieht die Aufgabenstellung aus:
Das Benutzersteuerelement (Objekt) soll 2 Methoden und 2 Eigenschaften (Properties) haben.
Dabei hat das Objekt auch einen eigenen Quellkode, in diesem werden die Methoden und Eigenschaften realisiert.
Das Programm (Form1) benutzt dann diese Methoden und Eigenschaften.
Nun habe ich ein simples Auto als Benutzersteuerelement gebastelt, welches vor und zurück fahren kann, sowie Licht und Warnblinker an und ausschalten kann.
Rein von den Methoden her sollte das ja auch reichen. Wenn sie denn im Benutzersteuerelement selbst vorhanden wären. Wie das allerdings funktioniert... ich habe keine Ahnung. Leider habe ich in der Schule aufgrund einer OP mehrere Wochen gefehlt und stehe nun da wie der Ochs vorm Berg.
Ich poste euch einfach mal mein Auto, vielleicht könnt ihr mir hier und da ja mal ein wenig unter die Arme greifen, bzw. mir sagen, wie ich realisieren kann, was der Lehrer von mir möchte...
Code:
Public Class Form1
Dim Guthaben As Integer = 100
Dim Tankkosten As Integer = 0
'hier kann man das Auto über die Tasten steuern'
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles UserControl11.KeyDown
'zunächst wird geguckt, ob wir schon an der maximalen position sind'
If e.KeyData = Keys.D And UserControl11.Location.X() < 960 And Verbrauch.Value > 1 Then
Timer2.Stop() 'wenn nicht, dann stoppen wir alle timer die evtl. laufen'
Timer3.Stop()
Timer4.Stop()
UserControl11.Left += 15 'und fahren dann 5 schritte vor'
UserControl11.rücklicht.FillColor = Color.Black
Label1.Visible = False
Verbrauch.Value -= 1
Else
If UserControl11.Location.X() < 960 And Verbrauch.Value > 1 Then
Label1.Visible = True
Label1.Text = "Du bist liegen geblieben. Geh tanken!"
End If
Label1.Visible = True 'falls doch, dann zeigen wir eine fehlermeldung an'
End If
'das gleiche für die rückwärtsfahrt'
If e.KeyData = Keys.A And UserControl11.Location.X() > 15 And Verbrauch.Value > 1 Then
Timer2.Stop()
Timer3.Stop()
Timer4.Stop()
UserControl11.Left -= 15
UserControl11.rücklicht.FillColor = Color.White
Label1.Visible = False
Verbrauch.Value -= 1
End If
'und damit es nicht so aussieht als hätten wir immer den rückwärtsgang drin, machen wir das licht noch aus nach dem rückwärtsfahren'
If UserControl11.Location.X() <= 15 Then
UserControl11.rücklicht.FillColor = Color.Black
End If
End Sub
Private Sub Licht_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Licht.Click
Label1.Visible = False
'hier wird beim klick auf den lichtbutton das licht an und ausgemacht'
If UserControl11.licht1.Visible = False Then
UserControl11.licht1.Visible = True
UserControl11.licht2.Visible = True
UserControl11.licht3.Visible = True
UserControl11.licht4.Visible = True
UserControl11.licht5.Visible = True
UserControl11.licht6.Visible = True
UserControl11.Select()
ElseIf UserControl11.licht1.Visible = True Then
UserControl11.licht1.Visible = False
UserControl11.licht2.Visible = False
UserControl11.licht3.Visible = False
UserControl11.licht4.Visible = False
UserControl11.licht5.Visible = False
UserControl11.licht6.Visible = False
UserControl11.Select()
End If
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'hier legen wir eine kleine schleife für den warnblinker an'
Static n As Integer
n = n + 1
If n > 2 Then n = 0 'wenn n größer als 2 ist, dann setzen wir n wieder auf 0'
Select Case n
Case 0 'bei 0 wird die standardfarbe angezeigt'
UserControl11.Blinker_hinten.FillColor = Color.LightYellow
UserControl11.Blinker_vorn.FillColor = Color.LightYellow
Case 1 'bei 1 blinkt es'
UserControl11.Blinker_hinten.FillColor = Color.DarkOrange
UserControl11.Blinker_vorn.FillColor = Color.DarkOrange
Case 2 'usw.'
UserControl11.Blinker_hinten.FillColor = Color.LightYellow
UserControl11.Blinker_vorn.FillColor = Color.LightYellow
End Select
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
'das ist der timer zum vorwärtsfahren'
If UserControl11.Location.X() < 960 And Verbrauch.Value <= 1 Then
Label1.Visible = True
Label1.Text = "Du bist liegen geblieben. Geh tanken!"
Else
If UserControl11.Location.X() < 960 Then
UserControl11.Left += 15
UserControl11.rücklicht.FillColor = Color.Black
Verbrauch.Value -= 1
Else
Timer2.Stop()
End If
End If
End Sub
Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
'dies ist der timer zum rückwärtsfahren'
If UserControl11.Location.X() > 15 And Verbrauch.Value <= 1 Then
Label1.Visible = True
Label1.Text = "Du bist liegen geblieben. Geh tanken!"
Else
If UserControl11.Location.X() > 15 Then
UserControl11.Left -= 15
UserControl11.rücklicht.FillColor = Color.White
Label1.Visible = False
Verbrauch.Value -= 1
Else
Timer3.Stop()
UserControl11.rücklicht.FillColor = Color.Black
End If
End If
End Sub
Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick
'und hier der timer zum schnellen vorwärtsfahren'
If UserControl11.Location.X() < 960 And Verbrauch.Value <= 1 Then
Label1.Visible = True
Label1.Text = "Du bist liegen geblieben. Geh tanken!"
Else
If UserControl11.Location.X() < 960 Then
UserControl11.Left += 45
UserControl11.rücklicht.FillColor = Color.Black
Label1.Visible = False
Verbrauch.Value -= 2
Else
Timer4.Stop()
End If
End If
End Sub
Private Sub warnblinker_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles warnblinker.Click
'hier wird der warnblinker an und aus gemacht'
If Timer1.Enabled Then
Timer1.Stop()
UserControl11.Blinker_hinten.FillColor = Color.LightYellow 'ganz wichtig, falls der timer während das blinklicht "on" war deaktiviert wird
UserControl11.Blinker_vorn.FillColor = Color.LightYellow 'soll die richtige farbe wieder angezeigt werden'
UserControl11.Select()
Else
Timer1.Enabled = True
Timer1.Start()
UserControl11.Select()
End If
End Sub
Private Sub vorwaerts_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles vorwaerts.Click
'hier wird bei klick auf vorwärts der timer 1 gestartet, der das auto langsam nach vorn bewegt'
If UserControl11.Location.X() < 960 Then
Timer3.Stop()
Timer4.Stop()
Timer2.Start()
UserControl11.Select()
Else
'falls das auto aber schon zu nah an der wand steht, werfen wir eine fehlermeldung raus'
Label1.Visible = True
End If
End Sub
Private Sub vorwaertsschnell_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles vorwaertsschnell.Click
'hier wird der timer fürs schnelle vorwärtsfahren gestartet, natürlich nur dann, wenn wir noch nicht an der wand stehen'
If UserControl11.Location.X() < 960 Then
Timer2.Stop()
Timer3.Stop()
Timer4.Start()
UserControl11.Select()
Else
'falls doch, dann gibts auch hier wieder unsere fehlermeldung'
Label1.Visible = True
End If
End Sub
Private Sub rueckwaerts_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rueckwaerts.Click
'und das gleiche nochmal fürs rückwärsfahren'
If UserControl11.Location.X() > 15 Then
Timer2.Stop()
Timer4.Stop()
Timer3.Start()
UserControl11.Select()
Else
Label1.Visible = True
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'damit wir die tasten zum fahren nutzen können, muss das objekt selektiert werden'
UserControl11.Select()
If Verbrauch.Value < 1 Then
Verbrauch.Value = 1
End If
End Sub
Private Sub stoppen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles stoppen.Click
'falls man während der fahrt nochmal stoppen möchte'
Timer2.Stop()
Timer4.Stop()
Timer3.Stop()
UserControl11.Select()
End Sub
Private Sub Tanken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tanken.Click
If Verbrauch.Value = 100 Then
Label3.Visible = True
Label3.Text = "Der Tank ist doch schon voll"
UserControl11.Select()
Else
Label3.Visible = True
Tankkosten = 100 - Verbrauch.Value
Label3.Text = "Das macht " & 100 - Verbrauch.Value & " Euro"
Guthaben = (Guthaben - Tankkosten)
guthabenanzeige.Text = "Du hast noch " & Guthaben & " Euro"
Verbrauch.Value = Guthaben - Tankkosten
UserControl11.Select()
End If
End Sub
End Class
Und ja, ich weiß, dass der Code mit dem Guthaben noch nicht richtig funktioniert, das bekomme ich aber sicher allein in den Griff.
Achja, wie man sieht ist das ja jetzt alles im Form1 untergebracht.
Mir gehts eher um die konkrete Aufgabenstellung. Was kann ich wie ins Benutzersteuerelement packen, damit ich zwei Methoden und zwei Eigenschaften ins eben jenes bekomme? Gibts dazu irgendwelche (brauchbaren) Erklärungen oder so?
Vielen vielen Dank schonmal!