DevTrain

Autor: Tobi Ulm

Klassen in Visual Basic Script

Klassen in VBScript??? Jo, das ist möglich! Allerdings erst ab der Visual Basic Scripting Engine 5.0. Die aktuellen Versionen der Visual Basic Scripting Engine können Sie von der Microsoft Scripting Engine Site ( http://www.microsoft.com/msdownload/vbscript/scripting.asp ) herunterladen.
Für alle die keine Objekt Orientierten Programmierung (OOP) Erfahrung haben kommt nun diese kurze Einführung:
Was ist ein Objekt? Ein Objekt ist normalerweise ein Container, also wie eine Schachtel, in der Sie bestimmte Variablen und Methoden sammeln, die irgendwie etwas über die Art (Typ) der Schachtel aussagen. Verwirrt? Ein Beispiel: Unsere Schachtel ist ein Auto und dieses hat eine Eigenschaft Farbe und eine Funktion Fahren.  Wir sammeln jetzt diese Eigenschaft und die Methode im Objekt Auto.
Die Deklaration von Klassen passiert mit dem Class Keyword und ist der Deklaration von Functions und Subs ähnlich. Ein einfaches Beispiel zu Anfang: Das einfachste was Sie mit einem Objekt machen können, ist darin Daten zu speichern. In unsrem Fall gibt es drei Eigenschaften Name, Haarfarbe und Augenfarbe die von Aussen gestetzt und abgerufen werden können.

<%
 Class HalloweenGast
 
  Public Name
  Public HaarFarbe
  Public Augenfarbe 
   
 End Class
%>

<%
 Dim objHalloweenGast
 Set objHalloweenGast = new HalloweenGast 'Referenz auf unser HalloweenGast Objekt
 objHalloweenGast.Name = "Tobi" 'Eigenschaft Name setzen
 objHalloweenGast.Haarfarbe ="Gelb"  ' Eigenschaft Haarfarbe setzen
 objHalloweenGast.Augenfarbe = "Grün" ' Eigenschaft Augenfarbe setzen

Response.Write(objHalloweenGast.Name &  " hatte " & objHalloweenGast.Haarfarbe & " Haare und " & objHalloweenGast.Augenfarbe & " Augen " 'Ausgabe des Objektes und dessen Werte
 Set objHalloweenGast = Nothing 'Löschen den Objektes aus dem Speicher

%>

Wenn Sie jetzt mit Ihren Objekteigenschaften noch Funtkionen durchführen wollen, wie zum Beispiel Stringzerlegung oder in unserem Beispiel ein bestimmtes Ausgabeformat für ein Datum müssen Sie die Propertys (Eigenschaften) anders deklarieren.
Dafür verwendet man die Get und Let Keywords. Diese weisen den Interpreter an entweder Werte zu übernehmen(Let) oder auszugeben (Get)
In unserem Beispiel habe ich Private Variablen iKommt und IGeht deklariert die wir benutzen um die eigentlichen Eigenschaften des Objekt nach Aussen zu füllen.
Bei der Let Funktion von Kommt sehen Sie das ein Wert an die Funktion übergeben wird, dieser mit der VBScript Funktion CDate in einen Datum Typ umgewandelt wird und in der iKommt Variablen gespeichert wird. Bei der Ausgabe (Get) von Kommt wird nun der Wert von iKommt zugewiesen.
<%
 Dim objHalloweenGast
 Set objHalloweenGast = new HalloweenGast
 objHalloweenGast.Name = "Tobi"
 objHalloweenGast.Haarfarbe ="Gelb"
 objHalloweenGast.Augenfarbe = "Grün"
 objHalloweenGast.Kommt= "31.10.01"
 objHalloweenGast.Geht = "31.10.01"
 Response.Write(objHalloweenGast.Name & " kam am " & objHalloweenGast.Kommt & " hatte " & objHalloweenGast.Haarfarbe & " Haare, " & objHalloweenGast.Augenfarbe & " Augen und verlies die Party am " & objHalloweenGast.Geht )
 Set objHalloweenGast = Nothing
 
 Response.Write("<br>")
 
 Dim nextObj
 Set nextObj = new HalloweenGast
 nextObj.Name = "Hannes"
 nextObj.HaarFarbe ="Blau"
 nextObj.Augenfarbe ="Pink"
 nextObj.Kommt ="31.10.2000"
 nextObj.Geht ="01.11.2000"
 Response.Write(nextObj.Name & " kam am " & nextObj.Kommt & " hatte " & nextObj.Haarfarbe & " Haare, " & nextObj.Augenfarbe & " Augen und verlies die Party am " & nextObj.Geht ) 
 Set nextObj = Nothing
 
%>
Natürlich handelt es sich hierbei um ein simples Beispiel. Sie können dieses jedoch nach Ihrem Geschmack verfeinern.
Noch ein Tip: Wenn Sie die Objekt Deklaration in eine .asp Datei speichern, können Sie Ihr Objekt in jede andere .asp Datei über include einbinden.

Erfasst am: 09.04.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=420
© Copyright 2003 ppedv AG - http://www.ppedv.de