Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung

...powered by haas.homelinux.net...

Einstieg in VB.NET von René Martin
- Für Programmiereinsteiger -
Einstieg in VB.NET
gp Kapitel 1 Die Grundlagen
  gp 1.1 Nach der Installation
  gp 1.2 Der erste Start
  gp 1.3 Das erste Formular
  gp 1.4 Eigenschaften
    gp 1.4.1 Regeln für Namen
    gp 1.4.2 Die Eigenschaften
  gp 1.5 Die Toolbox
  gp 1.6 Das Meldungsfenster
    gp 1.6.1 Die Code-Eingabe für die MessageBox
    gp 1.6.2 Ein Wort zum »alten« Visual Basic
    gp 1.6.3 Die Code-Eingabe allgemein
  gp 1.7 Ein Textfeld
  gp 1.8 Texte verketten
  gp 1.9 Andere Zeichen
    gp 1.9.1 Noch ein Wort zum Code-Tippen
    gp 1.9.2 Ein Wort zur Syntax
  gp 1.10 Variablen
  gp 1.11 Ein theoretischer Exkurs: Werte- und Referenztypen
  gp 1.12 Zuweisen von Werten an Variablen
  gp 1.13 Verzweigungen
  gp 1.14 Einige Hilfen für den Benutzer
    gp 1.14.1 Setze den Cursor in ein Textfeld
    gp 1.14.2 Ok und Abbrechen
    gp 1.14.3 Die Reihenfolge der Steuerelemente
  gp 1.15 Ein zweites Textfeld
    gp 1.15.1 Vergleiche
  gp 1.16 Rechnen in Basic
  gp 1.17 Optionsfelder
    gp 1.17.1 Schnell und ordentlich mehrere Steuerelemente platzieren
  gp 1.18 Ein zweites Gruppenfeld
  gp 1.19 Dynamische Steuerelemente
  gp 1.20 Das Ereignis »Klick«
  gp 1.21 Prozeduren
  gp 1.22 Ein theoretischer Exkurs: Prozeduren
  gp 1.23 Module
  gp 1.24 Ein theoretischer Exkurs: Objekte, Eigenschaften und Methoden
    gp 1.24.1 Objekte
    gp 1.24.2 Methoden
    gp 1.24.3 Eigenschaften
  gp 1.25 Zusammenfassung


Galileo Computing

1.23 Module  toptop

Angenommen, diese Prozedur ist nicht die einzige. Stellen Sie sich vor, das Formular benötigt mehrere Dutzend Prozeduren. Dann sollte man sie nicht in den Code des Formulars integrieren, sondern sauber trennen. Der Ort, an dem solche Prozeduren klassisch gespeichert werden, sind Module. Über den Menüpunkt Projekt Modul hinzufügen wird ein neues Modul erzeugt. Es wird »basKaffeeZubehör« genannt und erhält beim Speichern ebenfalls die Endung vb.

Die Prozedur im Modul sieht folgendermaßen aus:

Module basKaffeeZubehör
   Private Sub EinAus()
      If fSchalter = True Then
         frmKaffee.chkMilch.Enabled = True
         frmKaffee.chkZucker.Enabled = True
      Else
         frmKaffee.chkMilch.Enabled = False
         frmKaffee.chkZucker.Enabled = False
         frmKaffee.chkMilch.Checked = False
         frmKaffee.chkZucker.Checked = False
      End If
   End Sub
End Module

Damit wird sie sauber durch die Steuerelemente aufgerufen. Man könnte statt

Call EinAus()

auch schreiben

Call basKaffeeZubehör.EinAus()

Vor allem, wenn viele Module mit noch viel mehr Prozeduren im Projekt liegen, empfiehlt sich die saubere, exakte Schreibweise. Sie erleichtert anderen Programmierern, mit dem Code weiterzuarbeiten.

Nun hat die Sache mit den globalen Variablen einen Nachteil: Zu viele globale Variablen erleichtern sicherlich nicht die Lesbarkeit des Programms. Deshalb könnte man die Variable auch übergeben. Damit die Prozedur EinAus einen Wert erhält, wird in eine Klammer der Name des übergebenen Werts geschrieben. Dieser Wert wird sauber deklariert und VB.NET setzt die Art der Übergabe davor: ByVal:

Module basKaffeeZubehör
Public Sub EinAus(ByVal fSchalter As Boolean)

Der Unterschied zwischen ByVal und ByRef ist folgender: Werden die alten Werte in der Prozedur noch verwendet, dann geschieht die Übergabe »Call by Value«, das heißt, die alten Werte sind in der Ursprungs-Prozedur noch vorhanden. Wird dagegen die Prozedur mit »Call by Reference« aufgerufen, dann wird der veränderte Werte in der ersten Prozedur verwendet.

Und schließlich gäbe es noch die Variante, dass eine Funktion anstelle einer Prozedur verwendet wird. Die Syntax lautet

Public Function EinAus(ByVal fSchalter As _
Boolean)

Der Unterschied zwischen Funktionen und Prozeduren liegt darin, dass Funktionen in der Regel einen Wert zurückgeben, während Prozeduren etwas ausführen. Allerdings verlaufen die Grenzen etwas unscharf. Auf Funktionen wird noch eingegangen.

  

VB.NET

Einstieg in ASP.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML