Wenn der Benutzer stets alle Eingaben richtig macht braucht er sie nicht, ansonsten handelt es sich um eine nützliche Option welche eine Anwendung meist wesentlich komfortabler macht, die Rückgängig Taste...
Im nachfolgenden ist eine Codierung eines kleinen Programmes zu finden in welcher eine solche Rückgängig Taste umgesetzt wurde, natürlich auch mit einer Wiederholen Option als Gegenstück.
Der wesentliche Punkt des Programmes besteht darin das alle für den Programmablauf wichtigen Variablen über eine Struktur in eine einzige Variable zusammengefasst worden sind. Nach jedem Programmschritt welcher eine wesentliche Änderung mit sich bringt werden die Werte für diese Variable aktualisiert und die alten Werte an Speichervariablen übergeben.
Der Quellcode spricht ansonsten für sich und ist an allen wichtigen Stellen mit Kommentaren versehen.
Zunächst ein Screenshot: (Durch einige Label ist es möglich den Vorgang zu beobachten):
Und der Quellcode:
Hier noch einmal das ganze zum ausprobieren:
RueckgaengigTaste.rar
Im nachfolgenden ist eine Codierung eines kleinen Programmes zu finden in welcher eine solche Rückgängig Taste umgesetzt wurde, natürlich auch mit einer Wiederholen Option als Gegenstück.
Der wesentliche Punkt des Programmes besteht darin das alle für den Programmablauf wichtigen Variablen über eine Struktur in eine einzige Variable zusammengefasst worden sind. Nach jedem Programmschritt welcher eine wesentliche Änderung mit sich bringt werden die Werte für diese Variable aktualisiert und die alten Werte an Speichervariablen übergeben.
Der Quellcode spricht ansonsten für sich und ist an allen wichtigen Stellen mit Kommentaren versehen.
Zunächst ein Screenshot: (Durch einige Label ist es möglich den Vorgang zu beobachten):
Und der Quellcode:
VB.NET-Quellcode
- Public Class frmForm1
- '----------Variablendeklaration----------
- 'Variablen für den Prozess des Rückgängigmachens
- Public W As New Werte
- Public W1 As New Werte
- Public W2 As New Werte
- Public W3 As New Werte
- 'Die Variablen welche rückgängig gemacht werden sollen
- 'werden in einer Struktur zusammengefasst
- Public Structure Werte
- Public Zahl1 As Integer
- Public Zahl2 As Integer
- Public Zahl3 As Integer
- End Structure
- 'Ein Zaehler für den ganzen Prozess
- Public RueckWieder As Integer = 3
- '------------Menüauswahl---------------
- 'Die Menüauswahl Rückgängig wurde getroffen
- Private Sub mnurg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnurg.Click
- 'Es besteht wieder die Möglichkeit etwas zu wiederholen
- mnuwh.Enabled = True
- 'Es wird überprüft welcher Schritt gültig ist
- 'Da sich RueckWieder ändert findet an den jeweiligen Stellen
- 'Ein Abbruch mit Exit Sub statt
- If RueckWieder = 3 Then
- W = W1
- RueckWieder -= 1
- LabelWerte()
- Label18.Text = RueckWieder
- Exit Sub
- End If
- If RueckWieder = 2 Then
- W = W2
- RueckWieder -= 1
- LabelWerte()
- Label18.Text = RueckWieder
- Exit Sub
- End If
- If RueckWieder = 1 Then
- W = W3
- RueckWieder -= 1
- mnurg.Enabled = False
- LabelWerte()
- Label18.Text = RueckWieder
- Exit Sub
- End If
- End Sub
- 'Die Menüauswahl Wiederholen wurde getroffen
- Private Sub mnuwh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuwh.Click
- 'Es besteht wieder die Möglichkeit etwas zu wiederholen
- mnurg.Enabled = True
- 'Es wird überprüft welcher Schritt gültig ist
- If RueckWieder = 1 Then
- W = W1
- RueckWieder += 1
- LabelWerte()
- Label18.Text = RueckWieder
- Exit Sub
- End If
- If RueckWieder = 0 Then
- W = W2
- RueckWieder += 1
- LabelWerte()
- Label18.Text = RueckWieder
- Exit Sub
- End If
- End Sub
- '-------------Hauptprogramm------------
- 'Die Form wird geladen
- Private Sub frmForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- 'Es werden Startwerte gesetzt
- mnurg.Enabled = False
- mnuwh.Enabled = False
- 'AnfangsZaehlerstand in Label
- Label18.Text = RueckWieder
- End Sub
- 'Ereignisse der einzelnen Buttons wenn diese gedrückt werden
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- W.Zahl1 += 1
- Label1.Text = W.Zahl1
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- W.Zahl2 += 1
- Label2.Text = W.Zahl2
- End Sub
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- W.Zahl3 += 1
- Label3.Text = W.Zahl3
- End Sub
- 'Es wurde ausgewählt das die eingebenen Werte übergeben werden sollen
- Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
- 'Der Zaehlerstand für Rueckwieder wird aktualisiert
- If RueckWieder < 3 Then
- RueckWieder += 1
- End If
- 'AktuelleZaehlerstand in Label
- Label18.Text = RueckWieder
- 'Aktivierung und Deaktivierung des Menüs Rückgängig
- If RueckWieder >= 3 Then
- mnuwh.Enabled = False
- Else
- mnuwh.Enabled = True
- End If
- mnurg.Enabled = True
- 'Wertübergabe
- W3 = W2
- W2 = W1
- W1 = W
- 'Zahlen und Label zurücksetzen
- 'Das setzen der Werte ist problemlos da nie
- 'eine ungewollte Wertübergabe dieser Zahlen stattfindet
- W.Zahl1 = 0
- W.Zahl2 = 0
- W.Zahl3 = 0
- Label1.Text = W.Zahl1
- Label2.Text = W.Zahl2
- Label3.Text = W.Zahl3
- 'Im Speicher
- 'Erste Reihe
- Label4.Text = W1.Zahl1
- Label5.Text = W1.Zahl2
- Label6.Text = W1.Zahl3
- 'Zweite Reihe
- Label7.Text = W2.Zahl1
- Label8.Text = W2.Zahl2
- Label9.Text = W2.Zahl3
- 'Dritte Reihe
- Label10.Text = W3.Zahl1
- Label11.Text = W3.Zahl2
- Label12.Text = W3.Zahl3
- End Sub
- 'Den Label die Werte zuordnen
- Private Sub LabelWerte()
- 'Aktuelle Reihe
- Label1.Text = W.Zahl1
- Label2.Text = W.Zahl2
- Label3.Text = W.Zahl3
- End Sub
- End Class
Hier noch einmal das ganze zum ausprobieren:
RueckgaengigTaste.rar
Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von „Dragonfly“ ()