Attribute VB_Name = "Module1"
'Mit Public deklarierte Variable, Konstanten oder Prozeduren sind in allen
'Formmodulen des Projektes bekannt (öffentlich). Alternativ kann
'auch Global verwendet werden.

Public Const MaxLaenge As Integer = 20       'Maxlänge für String
Public Const Werkstoffdatei = "Werkstof.dat" 'Legt Namen für Werkstoffdatei fest
Public DateiNr As Integer                    'Dateinummer für Dateiaktionen
Public DateiGroesse As Integer               'in Byte
Public SatzGroesse As Integer                'in Byte
Public AnzWerkstoffe As Integer            'Anzahl Werkstoffe in Werkstoffdatei
Public FlagCommand1 As Boolean             'Gibt an, daß Command1 (auf Form1) betätigt wurde
Public FlagCommand2 As Boolean             ' "    "   "      "  2   "    "        "      "
Public N As Integer                        'meist für DatenSatz-Nr verwendet

'Benutzerdefinierten Datentyp festlegen. Mehrere werkstoffbezogene Daten können so
'in einem Datensatz zusammengefaßt werden (hier WerkstoffName u. Alpha-Wert).
Type WerkstoffTyp
  WerkstoffName As String * MaxLaenge
  Alpha As Double
End Type

'Variable WerkstoffSatz als WerkstoffTyp deklarieren
Public WerkstoffSatz As WerkstoffTyp

'Dateiaktionen werden vorbereitet
Public Sub DateiAktionenVorbereiten() 'Global gültig
  DateiNr = FreeFile                  'Freie DateiNr wird bestimmt mit FreeFile
  SatzGroesse = Len(WerkstoffSatz)    'Die Funktion Len ermittelt Satzgröße (hier 28)
  
  'Datei öffnen bzw. - wenn Werkstoffdatei noch nicht existiert - erstellen und öffnen.
  Open Werkstoffdatei For Random As DateiNr Len = SatzGroesse
  DateiGroesse = LOF(DateiNr)  'LOF bestimmt Größe einer geöffneten Datei in Byte
  AnzWerkstoffe = DateiGroesse \ SatzGroesse   'Errechnung von Anzahl der Datensätze
End Sub

'ListBoxInhalt auf Form 1 wird aktualisiert
Public Sub ListNeuFuellen()         'Global gültig, also von Form1 und Form2 aufrufbar
  Form1.List1.Clear                 'ListBoxinhalte löschen
  Call DateiAktionenVorbereiten     'Aufruf der global gültigen Prozedur (s.u.)
  For N = 1 To AnzWerkstoffe        'WerkstoffName in List1 einlesen
    Get DateiNr, , WerkstoffSatz    'Satz lesen mit Get
    Form1.List1.AddItem WerkstoffSatz.WerkstoffName 'AddItem-Methode zum Einlesen in List1
  Next
  Form1.List1.Selected(0) = True    'Ersten Listeneintrag markieren (Index 0)
  Close DateiNr                     'Geöffnete Datei schließen
End Sub

