![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#21 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() Mit den ersten beiden Punkten bist du absolut richtig gelegen. Die beiden Event-Prozeduren "Class_Initialize()" und "Class_Terminate()" reagieren quasi auf die Geburt bzw. den Tod eines Objekts der Klasse. Sie heissen auch überall gleich. Allerdings muss ich hier eine kleine Einschränkung setzen. In VB sieht die Sache wieder ein wenig anders aus. Dort kann man dem Konstruktor "New" auch Werte übergeben und diese zum Initialisieren verwenden.
Das sinnlose Property mit dem Recordset habe ich eigentlich nur eingebaut, um ein Property mit einem Objekt zu haben. Damit wollte ich den Unterschied zwischen "Property Set" für Objekte und "Property Let" für Variablen veranschaulichen. Ist aber auch nicht so besonders wichtig. In .NET gibt's diese Unterscheidung meines Wissens ohnehin nicht mehr. ![]() Ableitungen von Klassen sind zwar in VB, nicht aber in VBA möglich. Das selbe gilt auch für Schnittstellen (Stichwort "Implements"). Dazu gleich wieder ein kleiner .NET-Exkurs; In .NET kann man nicht nur Klassen von einer Basis-Klasse ableiten, sondern man kann das selbe auch für Formulare und Controls machen. Was zu den Klassen in VBA vielleicht sonst noch erwähnenswert wäre ist die Möglichkeit zu "Private / Friend / Public" Prozeduren. Friend Prozeduren sind in Standardmodulen nicht möglich. Solche Prozeduren sind nur innerhalb des Projekts aufrufbar; also nicht ganz Private aber auch nicht ganz public ![]() Manchmal kann auch eine als Static definierte Variable ganz praktisch sein. Die behält ihren Wert solange der Code ausgeführt wird und bleibt damit in einer Prozedur auch zwischen Aufrufen erhalten. Das ist aber keine Besonderheit von Klassen und sei hier nur mal so erwähnt weil es auch in diesem Zusammenhang nützlich sein kann. Wenn wir jetzt in Java oder C++ wären, müsste nach Static auch Final angesprochen werden. Ein so definiertes Member wäre allen Objekten einer Klasse gemeinsam. Gibt's in VBA und VB leider nicht aber ich hoffe diesbezüglich auf .NET ![]() Damit dürfte ich jetzt mein Wissen ziemlich komplett vor dir ausgebreitet haben. Viel mehr fällt mir nämlich zu dem Thema wirklich nicht mehr ein. Falls du noch Fragen hast, weisst du ja wie du mich erreichst ![]() |
![]() |
![]() |
![]() |
#22 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Danke.
![]() ![]() Alles hab ich jetzt zwar auch net verstanden, aber das is jetzt auch net so wichtig. ![]() Was ich jetzt aber auch gesehen hab (und nicht wusste), dass man einfach einen Recordset öffnen kann und darin Sachen abspeichern. Is ja quasi wie ein eigener Datentyp (der mit type und end type) definiert wird - nur dass man noch ein paar Zusatzoperationen hat. ![]() Und danke für dein "Angebot". Ich werde sicher wieder mal darauf zurück kommen - bzw. weiter kleine Schwierigkeiten/Fragen bei div. VB Programmen haben. ![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|