tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Shakie
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
733
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Arvenius Arvenius ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    13
    Hallo liebe Tutorials.de Gemeinde.

    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    
    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!
     

  2. #2
    pipistrello pipistrello ist offline Mitglied
    Registriert seit
    Jan 2011
    Ort
    Köln (NRW)
    Beiträge
    16
    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.
    hmmm... Dein Objekt soll laut Aufgabenstellung 2 Methoden haben, in deinem Auto willst du aber schonmal 6 Methoden verwenden. vorwärtsfahren() , rückwärtsfahren(), Licht einschalten(), Licht ausschalten(), Warnlicht einschalten() und Warnlicht ausschalten()...

    Würds für die Aufgabenstellung nicht reichen wenn dein Auto erstmal einfach nur Vorwärtsfahren() und Bremsen() könnte ? Wären ja genau 2 Methoden. Und die 2 Attribute wären dann z.B. Geschwindigkeit und Richtung....

    So hab ich es zumindest verstanden was der Lehrer von dir will....

    Gruß
     

  3. #3
    Arvenius Arvenius ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    13
    Aber wie sähe denn genau das dann aus mit dem vorwaerts()? Ich weiß gar nicht, wo ich eben einen solchen Quellcode unterbringen soll
    Gibts dazu irgendwelche Tutorials?
     

  4. #4
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Ich kann dir sehr das Galileo Openbook als Einstieg in VB.Net empfehlen!
    Wie ich aus deiner Aufgabenstellung interpretiere, sollst du objektorientiertes Programmieren lernen. Dazu kann ich dir Kapitel 7 empfehlen.
    Arvenius bedankt sich. 
    hihi = -h²

  5. #5
    Arvenius Arvenius ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    13
    Genau nach sowas habe ich gesucht, wenn auch Klassen nicht gleich zu benutzen sind wie Benutzersteuerelemente war der Link doch sehr hilfreich und hat dafür gesorgt, dass ichs verstanden hab Danke!
     

Ähnliche Themen

  1. weapons of mass destruction
    Von Basileus im Forum Fun-Forum
    Antworten: 10
    Letzter Beitrag: 12.11.04, 09:24
  2. Antworten: 2
    Letzter Beitrag: 20.10.04, 14:52
  3. Anfängerfragen zu C#
    Von chell im Forum .NET Archiv
    Antworten: 19
    Letzter Beitrag: 14.10.04, 11:14
  4. Email Dialog oder Mass Mail
    Von hellen im Forum Internet, DSL & Flatrate
    Antworten: 1
    Letzter Beitrag: 31.07.04, 01:48
  5. PCI Mass Storage ?
    Von JTBKN im Forum Hardware
    Antworten: 10
    Letzter Beitrag: 26.09.02, 21:39