Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Verschachtelte UDTs

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 13.09.2008, 15:53    Titel: Verschachtelte UDTs Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 13.09.2008, 16:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 13.09.2008, 16:56    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 13.09.2008, 18:00    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 13.09.2008, 22:27    Titel: Antworten mit Zitat

Verdammt.
Gleich mal nen Featurerequest ausfüllen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 14.09.2008, 03:00    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 14.09.2008, 17:48    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 14.09.2008, 18:00    Titel: Antworten mit Zitat

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 happy
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 15.09.2008, 11:27    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 15.09.2008, 15:54    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz