Rubrik: COM/OLE/Registry/DLL · Sonstiges | VB-Versionen: VB6 | 30.11.04 |
Klassen ohne Instanzierung verwenden Wie man eine eigenes Klassen-Objekt OHNE diese vorher zu instanzieren, das erfahren Sie hier. | ||
Autor: Florian Platzer | Bewertung: | Views: 14.314 |
www.vbmaster.gbadmin.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Seitdem ich auch unter VB.NET programmiere, habe ich immer eine Frage im Hinterkopf: In .NET ist alles ein Objekt und muss instanziert werden, sowohl Forms als auch Klassen. Wieso ist unter VB6 die Klasse das einzige Objekt, das instanziert werden muss? Das Form ist ja genauso ein Objekt und kann ohne weiteres verwendet werden. Dem bin ich auf den Grund gegangen: Anscheinend wird in VB6 jedes Form bereits vorinstanziert, sodass sich der Entwickler nicht mehr darum kümmern muss, eine Klasse hingegen wird vernachlässigt... Da helfen wir VB doch gerne auf die Sprünge
Erstellen Sie eine Klasse (Class1) mit folgendem Code und speichern sie ab.
Public Sub DoSomething() MsgBox "Ich wurde ohne explizite Instanzierung aufgerufen!" End Sub
Nun beenden Sie das Projekt und öffnen die Datei "Class1.cls" mit dem Windows-Editor. Unteranderem steht in den Attributen auch Attribute VB_PredeclaredId = False, während in den Formattributen Attribute VB_PredeclaredId = True steht...
Richtig, einfach das False in der Klasse in ein True umwandeln, speichern, Projekt neu starten und schon kann man einfach ...
Class1.DoSomething
... schreiben, statt bisher:
Dim oClass As New Class1 oClass.DoSomething