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

Antwort per Email an