@wolfgang:
Habe Deine L�sung nochmal gepostet, weil ich anhand der sibjects nicht
erkannt hatte, dass diese mails noch zum selben Problem geh�ren...

Claudius

> -----Original Message-----
> From: Wolfgang Kluge [mailto:[EMAIL PROTECTED]] 
> Sent: Mittwoch, 13. M�rz 2002 20:53
> To: AspGerman Kaffeehaus
> Subject: [aspdecoffeehouse] RE: vererbung von variablen per 
> vb [war: RE: vb-frage zu klassenmodulen]
> 
> 
> 
> hi..
> 
> ich glaube(!) verstanden zu haben, was du willst..ob dies 
> wiederum sinnig
> ist, ist wie immer ansichtssache.
> 
> wieder mal die einfachste l�sung, die auch oft praktiziert 
> wird ist, dass
> jede deiner klassen einen verweis auf die klasse1 bzw. auch 
> dessen parent
> hat.
> 
> 
> bei controls sieht man zb h�ufig die eigenschaft "parent".. 
> diese w�re dann
> ein verweis auf deine main-klasse.
> 
> beim instanzieren deiner objekte musst du eben auch noch 
> parent mitgeben.
> problematisch(bzw. eigentlich nur m�hselig) ist dabei, dass du niemals
> nie-nicht vergessen darfst, diesen auch wieder zu entfernen, 
> da sonst im
> schlimmsten fall dein ganzes objektgebilde im speicher bleibt 
> (und das mag
> der iis gar nicht*g*)
> 
> ums nochmal mit anderen worten zu verdeutlichen:
> es gibt 2 klassen. clsParent und clsChild
> 
> du willst nun von clsChild auf eine funktion/ein objekt von clsParent
> zugreifen.
> deswegen kannst du in clsChild eine eigenschaft namens "parent"(nur
> schreiben und wenn du willst auch als friend definieren) anlegen.
> sieht dann ca. so aus:
> 
> Friend Property Set parent(Value As clsParent)
>   Set m_ParentObject = Value
> End Property
> 
> m_ParentObject ist dabei eine modulweite variable vom typ clsParent
> diese musst(!!) du bei class_Terminate() wieder freigeben, 
> sonst kommts zu
> besagten h�ngern (da gibts noch mehr gr�nde, aber eins nach 
> dem anderen
> *g*)...
> 
> 
> so. wenn du nun von deiner klasse clsParent aus ein 
> child-objekt erstellst,
> solltest du gleich danach die eigenschaft setzen
> 
> Set m_clsChild = New clsChild
> Set m_clsChild.parent = Me
> 
> 
> ums etwas sicherer und vielleicht auch �bersichtlicher zu 
> halten, kannst du
> ja alle funktione, die von deinen unterobjekten aufgerufen 
> werden sollen als
> friend deklarieren. nat�rlich nur, wenn du diese nicht auch 
> extern aufrufen
> willst.
> 
> friend-funktionen(und auch eigenschaften) sind nach aussen 
> einfach nicht
> mehr sichtbar, und k�nnen nur innerhalb der klassen des einen
> projekts(deiner ax-dll aufgerufen werden)
> 
> 
> wenn du eine auflistung hast, und du immer wieder auf ein 
> parent verweisen
> willst, statt immer wieder auf die "haupt"-klasse. dann 
> solltest du die
> eigenschaft auch lesbar machen, damit du dich dort bis zur 
> obersten ebene
> durchangeln kannst ;)
> 
> 
> dann bleibt noch dazuzusagen: da es unter vb6 ja keine 
> konstruktoren gibt,
> ist in der funktion Class_Initialize der childklasse das 
> parentObject noch
> nicht gesetzt.. leider
> 
> daher: wenn du sofort nach objekterstellung an der 
> parentklasse etwas machen
> willst, statt Class_Initialize die eigenschaftsfunktion als 
> "einstiegspunkt"
> nehmen. dann sollte es passen
> 
> 
> ach ja. zu guter letzt noch ein kleiner hinweis:
> in klassen sollte(von wem das ist, wei� ich nicht*g*) man 
> m�glichst auf
> public-variablen verzichten. stattdessen sollte man propertys 
> nutzen(die ja
> auch weitaus anpassbarer sind(read-write, read, write, 
> friend), und man kann
> zus�tzlich auf wert�nderungen reagieren..)
> 
> 
> wolfgang
> http://www.vbwelt.de/
> 
> 
> > hi,
> >
> > ich frag nochmal, vieleicht hab ich mich nicht klar
> > ausgedr�ckt, hierf�r
> > mu� es doch eine l�sung geben :-)
> >
> > gehen wir von 3 klassenmodulen aus.
> >
> > * klasse1
> > * klasse2
> > * klasse3
> >
> > klasse1 wird con asp aus per server.createObject aufgerufen.
> >
> > innerhalb klasse1 gibt es einige public-variablen
> >
> > PUBLIC var1 AS INTEGER
> > PUBLIC var2 AS INTEGER
> > var1 = 12
> > var2 = 5012
> >
> > klasse1 ruft eine Funktion in Klasse2 per:
> >
> > DIM klasse2 AS app.klasse2
> > SET klasse2 = NEW app.klasse2
> > x = klasse2.funktion
> >
> > auf.
> >
> > wie schaffe ich es nun in klasse2.funktion auf die
> > variableninhalte von
> > klasse1.var1 und klasse1.var2 zuzugreifen?? mir ist klar, 
> da� ich sie
> > mit�bergeben k�nnte, aber wenn ich dies nicht will?
> >
> > noch lustiger ist es, wenn ich noch eine klasse3 auf klasse1
> > instanziere
> > und dort variablen setze. wie schaffe ich es von klasse2 
> aus auf diese
> > inhalte zur�ckzugreifen.
> >
> > mein problem ist einfach, da� ein
> >
> > SET klasse2 = NEW app.klasse2
> >
> > immer eine neue Instanz anlegt, aber nicht eine schon 
> existierende als
> > eine Art zeiger �bernimmt...
> >
> > ciao & danke
> > carsten wawer
> > leiter programmierung | cto
> >
> > barracuda digitale agentur GmbH
> > t +49(0)221 454 5405 f +49(0)221 454 5489
> >
> >
> >
> > | [aspdecoffeehouse] als [EMAIL PROTECTED] subscribed
> > | http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
> > | Sie k�nnen sich unter folgender URL an- und abmelden:
> > |
> http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffee
house.asp



| [aspdecoffeehouse] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
|
http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp


| [aspdecoffeehouse] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp

Antwort per Email an