Da ich es jetzt nach ein wenig Einarbeitung hinbekommen habe meine Programmdaten über eine Serialisierung zu speichern werde ich hier mal beschreiben wie soetwas abläuft auch wenn auf den zweiten Blick eigendlich nicht viel dahinter steckt.
Dazu habe ich ein kleines Spiel mit dem Titel: ,,Nur noch 10000 Clicks !!!" geschrieben.
Ziel des Spieles ist es 10000Mal auf einen Button zu klicken, um dann mit einer MsgBox Meldung belohnt zu werden.
Also ziemlich aufregend...
Wird auf den Button Wertänderung gedrückt findet intern eine Wertveränderung zweier Variablen statt, welche dazu führt das sich der Text der Label um den Wert +1 bzw. -1 ändert.
Falls man das Spiel gerne speichern möchte um dann später an der selben Stelle weiterzumachen sind hierfür zwei weitere Buttons vorgesehen.
Ansonsten spricht der Quellcode für sich und alles weitere ist durch Kommentare beschrieben.
Zunächst eine Übersicht über die Programmoberfläche:
Und der Quellcode:
Dazu habe ich ein kleines Spiel mit dem Titel: ,,Nur noch 10000 Clicks !!!" geschrieben.
Ziel des Spieles ist es 10000Mal auf einen Button zu klicken, um dann mit einer MsgBox Meldung belohnt zu werden.
Also ziemlich aufregend...
Wird auf den Button Wertänderung gedrückt findet intern eine Wertveränderung zweier Variablen statt, welche dazu führt das sich der Text der Label um den Wert +1 bzw. -1 ändert.
Falls man das Spiel gerne speichern möchte um dann später an der selben Stelle weiterzumachen sind hierfür zwei weitere Buttons vorgesehen.
Ansonsten spricht der Quellcode für sich und alles weitere ist durch Kommentare beschrieben.
Zunächst eine Übersicht über die Programmoberfläche:
Und der Quellcode:
VB.NET-Quellcode
- 'Es werden die benötigten Namenspace geladen um bestimmte
- 'Vorgänge durchführen zu können
- Imports System.Runtime.Serialization.Formatters.Binary
- Imports System.IO
- Public Class Form1
- '-------------Variablendeklaration----------
- 'Die Variablen für die Serialisierung
- Dim bf As New BinaryFormatter()
- Dim stream As FileStream
- 'In der Variable sind alle Werte aus der Struktur1 zu finden
- Public GE As New Struktur1
- 'Wenn etwas Serialisiert werden soll muss es mit <Serializable()> gekennzeichnet werden
- 'Es wird eine Struktur definiert
- <Serializable()> Public Structure Struktur1
- 'Wichtig ist das die Werte der Struktur mit Public festgelegt werden
- Public Wert1 As Integer
- Public Wert2 As Integer
- End Structure
- '-------------Hauptprogramm-----------------
- 'Die Form wird geladen, Grundeinstellungen werden gesetzt
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- 'Anfangswerte setzen
- GE.Wert1 = 0
- GE.Wert2 = 10000
- 'Ausgabe in Label
- Label1.Text = GE.Wert1
- Label2.Text = GE.Wert2
- End Sub
- 'Der Button zum speichern wurde gedrückt
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- 'Öffnen einer Dialogform
- Dim sfd As New SaveFileDialog
- sfd.InitialDirectory = "C:\Temp"
- sfd.Filter = "Alle Dateien (*.*)|*.*"
- sfd.Title = "Wählen sie eine Datei zum Speichern aus"
- If sfd.ShowDialog = DialogResult.OK Then
- MsgBox("Die Datei wird gespeichert")
- Else : Exit Sub
- End If
- 'Filestream zum speichern
- stream = New FileStream(sfd.FileName, FileMode.Create)
- bf = New BinaryFormatter()
- bf.Serialize(stream, GE)
- stream.Close()
- End Sub
- 'Der Button zum öffnen wurde gedrückt
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- 'Öffnen einer Dialogform
- Dim ofd As New OpenFileDialog
- ofd.InitialDirectory = "C:\Temp"
- ofd.Filter = "Alle Dateien (*.*)|*.*"
- ofd.Title = "Wählen sie eine Datei zum Speichern aus"
- If ofd.ShowDialog = DialogResult.OK Then
- Else : Exit Sub
- End If
- 'Vorgänge um die Datei zu erstellen
- Dim dat As New FileStream(ofd.FileName, FileMode.Open)
- GE = bf.Deserialize(dat)
- dat.Close()
- 'Die Label werden aktualisiert
- Label1.Text = GE.Wert1
- Label2.Text = GE.Wert2
- End Sub
- 'Der Button zur Wertänderung wurde gedrückt
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- 'Es wird getestet ob die 10000 Clicks schon erfolgt sind
- If GE.Wert1 = 10000 Then
- MsgBox("Sie haben es geschafft und sind ganz toll, die Anwendung wird jetzt geschlossen")
- 'Danach wird die Anwendung geschlossen
- Me.Close()
- End If
- 'Für den Fall das die 10000 Clicks noch nicht
- 'erreicht sind findet eine Wertänderung statt
- GE.Wert1 += 1
- GE.Wert2 -= 1
- 'Ausgabe in Label
- Label1.Text = GE.Wert1
- Label2.Text = GE.Wert2
- End Sub
- End Class
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Dragonfly“ ()