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/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
