Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 13.09.2008, 15:53 Titel: Verschachtelte UDTs |
|
|
Hallo!
Gleich zu anfang ein Beispiel
Code: | Type foo
Type bar
Declare Function foobar () As Integer
End Type
Declare Function enterfoo () As Integer
thefoobar As Integer
End Type |
Das geht (natürlich) nicht.
Aber folgendes möchte ich erreichen:
foo.bar.foobar soll auf thefoobar zugreifen können, enterfoo auf foobar und foobar auf enterfoo... also eine Art "gruppierung" von UDT-Membern im UDT.
Geht das? |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 13.09.2008, 16:51 Titel: |
|
|
type X
bla as integer
end type
type y
blubb as X
foo as integer
end type
sowas? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 13.09.2008, 16:56 Titel: |
|
|
Nope, ich meinte das eher so, als das man einfach nur Elemente eines UDTs gruppiert, auf deinem Vorschlag bin ich auch schon gekommen, aber da müsste man eine Referenz auf das Elternobjekt einbinden... was ich eher ungern tuen würde, weil dann die Elemente des Unterobjekts nicht auf die Privaten Elemente des Parentalobjekts (Sry, hab grad Genetik in Bio^^) zugreifen können... und alles Public machen will ich auch nich |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 13.09.2008, 18:00 Titel: |
|
|
ach bla soll foo lesen können ohne dass du den verweis von hand führen musst? das geht nich. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 13.09.2008, 22:27 Titel: |
|
|
Verdammt.
Gleich mal nen Featurerequest ausfüllen... |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 14.09.2008, 03:00 Titel: |
|
|
nur so als tipp, das funktioniert einfach überhauptnicht ;p
entweder du baust den type wirklich so indem du verschachtelte types baust
type parentobj
type subobj
end type
ent type
dadurch könntest du dann kein subobj mehr erstellen ohne parentobj, also könntest du auch direkt einen type draus machen weil einer ohne den anderen eh nicht existiert.
oder du machsts wie ich vorhin beschrieben hab
type subobj
end type
type parentobj
sub as subobj
end type
dann hat aber nicht jedes subobj auch zwangsläufig ein parentobj, der verweis müsste also bei manchen subobjs existieren und bei manchen nicht, und - falls es noch ein parentobj2 gäbe was die selben subobj als untertypen hat wüsstest du nichtmal mehr welcher type hinter deinem parent-verweis steht - geht also nicht weil keine dynamische typprüfung.
kurz und knapp - es geht einfach nicht und wenn mans irgendwie doch bastelt ists soooooo umständlich, fehleranfällig und chaotisch dasses einfach nur unbenutzbar wäre. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 14.09.2008, 17:48 Titel: |
|
|
Code: |
Type AParent As Parent
Type AChild As Child
Type Child
V_Parent As AParent Ptr
End Type
Type Parent
V_Child As AChild Ptr
End Type
|
selbstverständlich geht das.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 14.09.2008, 18:00 Titel: |
|
|
ja dass das von hand über pointer geht ist klar, er wollts aber halt automatisch so wie ich das verstanden hab weil pointergemurks is einfach eklig  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 15.09.2008, 11:27 Titel: |
|
|
Vorschlag: Erstelle jeden UDT jeweils mit einem Zeiger auf den anderen UDT. (Dazu muß Du einen der UDTs forward-referenzieren). Über die Zeiger kannst Du dann auf die jeweiligen Funktionen zugreifen. Und es ist klar, daß im Programm darauf geachtet werden muß, daß auf die Zeiger nur zugegriffen wird, wenn der entsprechende UDT geDIMt ist.
[Edit] Ooops, da hatte schon ein anderer vorher dran gedacht. Hab nicht weit genug gelesen. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 15.09.2008, 15:54 Titel: |
|
|
Das kommt ja alles aufs selbe hinaus, wie bei DirectX/Sound/SAPI/etc. mit den hässligen "metatables" oder "vtables"... sowas will ich mir gar nicht antun, habe alles jetzt auf Imparativ Umgestellt... war eh nur für eine Instanz gedacht... |
|
Nach oben |
|
 |
|