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.