Type in Type: die einzeln Unter-Types abfragen? [gelöst]

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Panthzer

Betreff: Type in Type: die einzeln Unter-Types abfragen? [gelöst]

BeitragDi, Jan 15, 2008 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann ich nur die Types “B“ durchzählen die in einem anderen Type “A“ sind?

New A
a\B = 1

New A
a\B = 2

Bei meiner Abfrage werden immer alle “B“ aufgezählt:

[ A ]:
B1
B2
[ A ]:
B1
B2

For A\B = Each B
Print B
next

Ich möchte aber:

[ A ]:
B1
[ A ]:
B2

Hier ist ein Beispielcode:
Ein Type Schrank hat mehrere Types Fach in sich. Bei der For ... Each Schleife möchte ich aber immer nur alle Fächer des jeweiligen Schrankes durchgehen.

Code: [AUSKLAPPEN]

Type Schrank
   Field Name$
   Field F.Fach
End Type

Type Fach
   Field Value$
End Type

;zwei Schränke werden mit Fächern erstellt, "Zahlen" und "Buchstaben"

S.Schrank = New Schrank   
 S\Name = "Zahlen"
 S\F.Fach = New Fach
 S\F\Value = "eins"

 S\F.Fach = New Fach
 S\F\Value = "zwei"

 S\F.Fach = New Fach
 S\F\Value = "drei"

S.Schrank = New Schrank
 S\Name = "Buchstaben"   
 S\F.Fach = New Fach
 S\F\Value = "A"

 S\F.Fach = New Fach
 S\F\Value = "B"

 S\F.Fach = New Fach
 S\F\Value = "C"


For S.Schrank = Each Schrank
   Print ""
   Print ""
   Print S\Name
   Print ""
   
   For S.Schrank\F.Fach = Each Fach
      Print S\F\Value$
   Next
Next
WaitKey()
End


Help? Rolling Eyes
  • Zuletzt bearbeitet von Panthzer am Di, Jan 29, 2008 22:06, insgesamt einmal bearbeitet
 

Dreamora

BeitragDi, Jan 15, 2008 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Da musst du dir einen Container Type, eine sogenannte LinkedList implementieren die du dann durch gehst.
Diese List Elemente hätten dann eine Referenz auf diese "B"s.
Die As selbst haben nur noch eine Referenz auf den Anfang der LinkedList und wenn sie die elemente wollen gehen sie durch durch diese und nehmen bei jedem Listenelement den darin enthaltenen Wert heraus.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Silver_Knee

BeitragDi, Jan 15, 2008 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
da man Type listen nicht unterteilen darf musst du das anders regeln.meist macht man das so: Anstatt zu sagen "viele Schränke mit jeweils unterschiedlich vielen Schubladen" kann man auch sagen: Viele Schubladen, die zu je einem bestimmten schrank gehören. Der erste Schritt ist also:

Code: [AUSKLAPPEN]

Type Schrank
   Field Name$
End Type

Type Fach
   Field Value$
   Field in.Schrank
End Type


Nun kann ich die Fachliste immer durchgehen und mir die zum schrank Passenden Rausfischen. Das lässt sich aber noch Optimieren und da ich ein ähnliches Problem hatte (Raumschiffe mit unterschiedlich vielen waffen etc) hab ich mal was dazu im Optimierungsthread geschrieben.

Panthzer

BeitragMi, Jan 16, 2008 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, tut mir leid das bringt mir garnichts. Sad
Ich will einfach nicht jedes Objekt einer Art durchgehen, sei es nun Schrank oder Fach. Mad
Warum sollte man überhaupt Type in Type schreiben,
wenn man dann eh nicht einzeln darauf zugreifen kann?

Ich könnte mir vorstellen über eine Art Steuernden Type die handles aller zusammengehörigen Objekte zu koordinieren, aber das muss doch auch einfacher gehen? Very Happy

Exclamation Viele verschiedene Schränke sollen uneingeschränkt viele verschiedene Fächer tragen können.

Ein Schrank soll z.B. bis zu 50 verschiedene Fächer tragen können.

Bei sagen wir mal 200 Schränken...

Ich suche eine einfache Zugriffsschleife:

For Each Fach of Schrank Nr. 114

next

aMul

Sieger des Minimalist Compo 01/13

BeitragMi, Jan 16, 2008 0:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist ganz simpel und wurde auch von meinen Vorpostern schon angesprochen(es sei denn, ich habe sie falsch verstanden Wink).
Ich versuche mal es so zu formulieren, dass du vielleicht besser verstehst, was gemeint ist:

Du sortierst die Fächer, so dass auf alle Fälle immer alle Fächer eines Schrankes hintereinander liegen. Weiterhin stellst du sicher, dass alle Fächer wissen, in welchen Schrank sie gehören. Der Schrank muss allerdings nur wissen, wo das erste seiner Fächer in der Liste liegt. Das funktioniert wie folgt:
Code: [AUSKLAPPEN]
Type tschrank
   Field erstesfach.tfach
   Field blub
End Type

Type tfach
   Field schrank.tschrank
   Field wasauchimmer
End Type

Function NeuesFach(schrank.tschrank)
   Local fach.tfach = New fach
   If schrank\erstesfach = Null Then
      schrank\erstesfach = fach
   Else
      Insert fach After schrank\erstesfach
   EndIf
   fach\schrank = schrank
End Function

Um nun alle fächer eines Schrankes durchzugehen, fängst du beim ersten Fach des Schrankes an und hangelst dich solange weiter, bis du zu einem Fach eines anderen Schrankes kommst oder die Liste zu Ende ist.
Das geht so:
Code: [AUSKLAPPEN]
fach = schrank\erstesfach
Repeat
   If fach = Null
      Exit
   ElseIf fach\schrank <> schrank
      Exit
   Else
      SagMirWieSpätEsIst()
   EndIf
   fach = After fach
Forever

Ich hoffe, du verstehst so und anhand der Codes besser was gemeint ist.
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Panthzer

BeitragMi, Jan 16, 2008 1:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Äh. danke aMul dass du dir soviel Mühe gemacht hast aber wir reden aneinander vorbei. Sad Ich wollte nicht irgendeine Lösung für mein Problem, sondern ich suche eine Antwort...

Den ansatz von dir finde ich an sich gut, es muss aber doch noch einfacher gehen! Wozu sonst Type in Type?

Zitat:
Ich will einfach nicht jedes Objekt einer Art durchgehen, sei es nun Schrank oder Fach


Was pssiert den wenn ich 200 verschiedene Schränke mit durchschnittlich 15 Fächern pro Schrank habe?

200 * 15 Fächer pro Schleifendurchlauf das ist doch Wahnsinn! Shocked

Ich möchte gerne eine Antwort auf meine FRAGEN:
Zitat:
Wie kann ich nur die Types “B“ durchzählen die in einem anderen Type “A“ sind?

Zitat:

Ich suche eine einfache Zugriffsschleife:

For Each Fach of Schrank Nr. 114

next

Ich hoffe jetzt ist klarer was ich will, trotzdem danke für die Hilfe Rolling Eyes
 

Dreamora

BeitragMi, Jan 16, 2008 3:44
Antworten mit Zitat
Benutzer-Profile anzeigen
hat dir doch aMul gegeben. Du gehst zum Fach 1 des Schranks 114 und gehst solange weiter, bis du zum 1. Fach von Schrank 115 kommst, dann weisst du es wenn du zählst wie weit du gegangen bist.
Das ist die vermutlich schnellste Lösung.

Sagte ja niemand das du über alle gehen musst.

Fürs zählen kannst du vor allem sonst auch einfach einen Counter in "Schrank" einbauen. Wenn du ein Fach anhängst -> counter 1 rauf, wenn du ein fach wegnimmst -> counter 1 runter


Übrigens: aMul, das is nen recht interessanter ansatz, hab nie drüber nachgedacht, das man dafür eigentlich auch Blitz eigene Liste missbrauchen könnte statt ner eigenen LinkedList. Danke für die Idee Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Panthzer

BeitragDo, Jan 24, 2008 1:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok habe ich das jetzt richtig verstanden:

Die Schubladen eines Schrankes werden nacheinander geordnet,

Der Schrank kennt die erste Schublade.

Wenn ich auf alle Schubladen eines Schrankes zugreifen will muss ich die erste Schublade aufrufen

und mit einer Schleife bis zur ersten Schublade des nächsten Schrankes immer die nächste Schublade wählen.

???

Das hört sich SEHR uneffizient und umständlich an. Das programm muss ja bei jeder einzelnen Schublade die es durchläuft prüfen ob es schon die des nächsten Schrankes ist.

Hier könnte man schonmal optimieren indem man zusätzlich die Anzahl Schubladen in den Schrank Type speichert.

Wenn man dann alle Schubladen durchwählen möchte:
for i = 1 to Schubladenzahl_Schrank
next

Soviel dazu...


Ich will später in meinem Spiel ständig viele neue Schubladen hinzufügen und wieder wegnehmen usw.

Dafür ist dieser Ansatz total ungeeignet...



FRAGEN:

Geht das wirklich nicht leichter? (simpler)

WOZU denn Type in Type benutzen? Was kann man damit überhaupt machen?

WARUM kann man nicht einfach alle Types durchwählen die in einem anderen Type erstellt wurden?

Das ist wirklich ein Grundproblem an das ich immer wieder stoße. Ich würde gerne Types in Types beherrschen, das würde meine Möglichkeiten verhundertfachen. Twisted Evil

Danke.

aMul

Sieger des Minimalist Compo 01/13

BeitragDo, Jan 24, 2008 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Dafür ist dieser Ansatz total ungeeignet...

Falsch, dieser Ansatz ist genau das was du brauchst.
Und nein, es ist überhaupt nicht ineffizient. Die eine If-Abfrage ist wesentlich schneller als jede andere Möglichkeit.
Das mit der For-Schleife ist eine Alternative, aber so wie ich BB kenne langsamer als meine Methode.

Ich denke, dass du Types nicht wirklich verstanden hast. Jeder Type hat nur eine einzelne Liste. Es gibt keine "Types in Types", untergeordnete Listen oder sonst was.
Und wozu man das gebrauchen kann?
Zum Beispiel, wenn man beliebig viele Schränke mit beliebig vielen Fächern haben will...

Achja, und ich bezweifele, dass sich deine Möglichkeiten verhundertfachen würden.
Was bringen die tolle Features, wenn du nicht mal die einfachen zu 100% verstehst?
(Ist nicht beleidigend gemeint. Wir waren alle mal Anfänger.)

@Dreamora:
Gern geschehen Wink
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Panthzer

BeitragDi, Jan 29, 2008 12:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für deine Antwort,

1. Ich bin kein Anfänger, nur weil ich eine Frage stelle.
2. Hast du meine Frage nicht richtig gelesen, ich weiß was ein Type ist, danke.
3. Hast du meine Frage immernoch nicht beantwortet.
4. ...das mit dem verhundertfachen war eine Übertreibung. Deswegen auch der Smily dahinter. War nicht ernst gemeint. Ich dachte das wäre klar.

Du interpretierst da sehr viel rein und urteilst sehr schnell, ich bin nicht dumm und ich habe mir die Frage genau überlegt und formuliert. Das merkt man auch! Wink

Nur weil du noch nie von mir gehört hast heißt das nicht automatisch ich kann nichts. Ich weiß viele stellen dumme Fragen, nicht alle Fragen sind dumm. Wink


Es gibt keine Types in Types. Ok, wie nennt man es dann?

Type Schrank
Field Name
Field F.Fach
end Type

Type F.Fach
Field Value
end Type

for S.Schrank = each Schrank
for S\F.Fach = each Fach

next
next
...
Dann kann ich doch gleich einzeln einen Type Schrank machen und einen Type Fach und mir das ganze sparen!

Question Es gibt keine Types in Types. Ok, wie nennt man es dann Question
Question Wozu kann man Types in Types gebrauchen Question
Question Was kann man damit machen Question

Mir will einfach nicht in den Kopf wozu es diese Möglichkeit gibt, ein Type in einem Type zu erstellen, wenn man dann eh nicht direkt darauf zugreifen kann. Confused

Wenn ich Zeit finde werde ich das mal testen mit den Schleifendurchläufen.
Ich kann mir aber nicht vorstellen das es schneller ist wenn ständig If abfragen laufen. Vielleicht merkt man den Unterschied ja auch erst bei hoher Objektzahl?

Den Ansatz finde ich nur ungeeignet weil er ständig abfragt 'Sind wir schon da? Sind wir schon da?' bei jedem Schritt. Wo ich doch genau berechnen kann wieviele Schritte ich brauchen werde.
Ich hab schon eine Idee, ich bekomme das bestimmt schneller hin Wink

Bei 50 Objekten oder so spielt das vielleicht keine Rolle...

Hip Teen

BeitragDi, Jan 29, 2008 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich hatte mal das selbe gedankliche Problem wie du, Panthzer, also versuch ich dir mal das zu erklären (ich hoffe ich sehe das Missverständnis richtig).
Wenn du ein Type erstellst, also z.B.:
Code: [AUSKLAPPEN]
Type Test
Field Eintrag
End Type

Dann erstellst du damit genau eine Liste, in die du beliebig Einträge machen kannst. Es gib aber nur diese eine Liste, von dieser kannst du nicht mehrere Instanzen erstellen. Wenn du jetzt diese Variablen hier definierst:
Code: [AUSKLAPPEN]
Global Blub1.Test, Blub2.Test, Blub3.Test

erzeugen die keine neue Instanzen von dieser Liste, sondern zeigen alle auf diese eine. Daher gibt es nicht wirklich verschatelte Types in BB, sondern sieht nur so aus. Find ich doof, weil wenn das möglich wäre, puh, dann wäre BB (von Natur aus) doch um einiges mächtiger.
Es ist denk ich möglich, selber LinkedLists in BB umzusetzen, was Dreamora vorgeschlagen hat. Ich meine mal was hier gesehen zu haben, vielleicht spuckt die Suche ja was aus. Müsste mit Banks umgesetzt worden sein, was anderes macht denk ich mal wenig Sinn. Ob das dann schneller ist, als die Methode von aMul (die ich persönlich sehr intelligent finde, da solche sortierten Listen einem auch sonst viel Arbeit abnehmen), weiß ich nicht.
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

aMul

Sieger des Minimalist Compo 01/13

BeitragDi, Jan 29, 2008 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Ich weiß nicht, ob du ein Anfänger bist, zugegeben. Aber deine Frage klingt nun mal wie eine Anfängerfrage, und die werden in der Regel ja von Anfängern gestellt.
2. Wenn du weißt, was ein Type ist, dann verstehe ich nicht, warum du hier fragst was man damit machen kann.
3. Ich denke schon. Falls nicht, dann musst du deine Frage so formulieren, dass ich verstehe, was du meinst(oder warten bis jemand anders dir hilft).
4. irrelevant

Es mag sein, dass ich zuviel in deine Worte reininterpretiere. Aber vielleicht hilft es ja auch, wenn du deine Gedanken eindeutiger formulierst...
Nunja, jetzt weiß ich immerhin, was du mit "Types in Types" meinst.
Ob es einen anderen Namen dafür gibt? Keine Ahnung.
Aber man kann einer Variable halt einen Datentyp(heißt doch so?) zuweisen. Und da gibts in BB halt außer Integer, Float und String noch die, die man selber als Types definiert hat.

Wozu man das braucht?
Um Fächer in Schränken zu haben, verdammt nochmal!
Ist die das zu simpel, oder was?
Hier ein anderes Beispiel...
Code: [AUSKLAPPEN]
Type tvektor
   Field x#
   Field y#
   Field z#
End Type

Type tschiff
   Field position.tvektor
   Field direction.tvektor
   Field firedirection.tvektor
End Type

Oder das hier:
Code: [AUSKLAPPEN]
Type tsurface
   Field mesh
   Field surf
End Type

Type tsprite
   Field surf.tsurface
   Field x#
   Field y#
   Field z#
   Field v0
   Field v1
   Field v2
   Field v3
End Type


Hilft das?

Achja, und zu Sachen Geschwindigkeit:
Wenn du meinst, du kannst es schneller, dann mach doch einfach...
Ich verstehe dein Problem hier nicht. Ich benutze die von mir genannte Methode und habe damit sehr gute Erfahrungen gemacht.
Und du kannst mir glauben, hundert If-Abfragen mehr oder weniger per Frame... macht überhaupt nichts.
In For-schleifen stecken übrigens auch "versteckte" If-Abfragen drin... nur so zur Info(wer c kann weiß was ich meine)
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

BladeRunner

Moderator

BeitragDi, Jan 29, 2008 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem bei den Txpes in Types unter BB ist in der Tat die Tatsache dass es nur eine globale Liste Pro Type gibt, womit flexible Unterlisten ein klein wenig erschwert werden.
Hier sei dir ql:Handle und ql:Object ans Herz gelegt.

Grundidee:
Jeder Type bekommt anstatt eines 'Faches', also einer Liste, eine Start und Endschublade verpasst.
Soll die Liste ausgegeben werden kannst Du es von Start bis Ziel durchiterieren. Wichtig dabei ist halt dass neue Listeneinträge mittels ql:after &Co. an die passende Stelle eingetragen werden.

Und ja: es ist aufwändiger als unter C++ und Co, wo Du flexible Listen anlegen kannst. Aber das nur augenscheinlich, denn auch c++ und Co. prüfen intern beim Iterieren durch die Liste ob denn schon das Listenende erreicht wird.
Eine Liste hat eben genau da ihre Schwachstelle, dafür ist sie wesentlich flexibler als ein Array.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Panthzer

BeitragDi, Jan 29, 2008 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, endlich mal eine klare Antwort.

Exclamation Ich möchte noch einmal klarstellen die Frage war nicht "Was ist ein Type?" Exclamation

Ich wollte wissen wie man mit verschachtelten Types umgeht (also ein Type in einem Type) Exclamation

Und die Antwort ist: Es geht nicht Mad Mad Mad

Bladerunner hat verstanden was ich meinte. DANKE DANKE DANKE Very Happy

War das echt so schwer zu verstehen? Sad

Deine Antwort war GENAU das was ich gesucht habe.

Knapp, präzise auf meine Frage geantwortet.

@ aMul:
Nein du hast die Frage noch nicht beantwortet. Tipp: (Sie steht im Titel des Eintrages)
Und nein, es ist keine Anfängerfrage, die hätte ich dann auch im Anfängerthreat gepostet. Wink
Du bist aber davon ausgegangen dass ich Anfänger bin und wissen will was ein Type ist. Deshalb hast du überlesen was ich will und einfach geantwortet. Kein Problem, hat mir aber nicht geholfen...


Tja ich habe schon befürchtet das ich diese "verrenkung" mit object und handle machen muss,
wollte aber sicher gehen das es keinen einfacheren Weg gibt, da man ja Types in Types erstellen kann (auch wenn diese wohl keinen wirklichen nutzen haben)

Pech gehabt.

Ich schreibe an einer Tutorialserie die Types von Grund auf erklärt mit vielen Beispielen und Minigames. Handle und Object verstehe ich, kein Problem. Very Happy

Ich hatte die selbe Idee mit dem durchzählen und erstem und letzten Fach Cool

In ein zwei Monaten werdet ihr von mir hören^^
Danke nochmal Frage beantwortet

aMul

Sieger des Minimalist Compo 01/13

BeitragDi, Jan 29, 2008 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt wohl, ich habe glatt an deiner Frage vorbei geredet.
Zumindest an deiner Ausgangsfrage, die anderen habe ich meiner Ansicht nach alle beantwortet.
Wie dem auch sei, da du ja keine Anfänger mehr bist, denke ich, dass man erwarten kann, dass du von selbst darauf kommst, dass das was du wolltest nicht geht, wenn dir andere Möglichkeiten vorgeschlagen würden.
Oder denkst du, wir machen uns freiwillig mehr Arbeit?

Nun ja, immerhin ist dann jetzt alles geklärt.
Auch wenn ich nicht weiß, was für Informationen ein "Nicht-Anfänger" noch aus BladeRunners Code herausbekommen hat...
(Zumal das alles, außer Handle und Object, was du aber ja schon kennst, bereits gesagt wurde...)

Aber die Hauptsache ist, dass dir geholfen wurde.
Und da ich Dreamora um eine Idee reicher machen konnte ist auch für mich was dabei rausgesprungen.
Ist die Welt nciht schön, wenn man das ganze negative vernachlässigt? Smile
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
  • Zuletzt bearbeitet von aMul am Mi, Jan 30, 2008 0:00, insgesamt einmal bearbeitet

skey-z

BeitragDi, Jan 29, 2008 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Also zunächst einmal habe ich mir jetzt nicht alle Beiträge hier durchgelesen, aber kurz überflogen.

Ich mache es bisher so.

Um dein Probelm mit den Schubladen aufzugreifen.

Ich erstelle ein Type Schrank, dieser enthält von mir aus die Felder Name$ und ID%
Dann erstelle ich ein Type Fach mit Inhalt$ und Parent%, Parent wäre in diesem Fall die ID% von einem Schrank.

Nun weiß ich nicht, was du mit den Fächern oder Schubladen machen Möchtest, aber für mich war diese bisher die einfachste Möglichkeit ein kleines Parent/Child System zu erstellen und ich bin mir auch im Klaren, dass es mit Sicherheit nicht die beste Möglichkeit ist, aber funktionieren tut es auf jeden Fall.

Der Nachteil ist allerdings, dass auf jeden Fall alle Child Instanzen durchgegangen werden müssen, um die Fächer eines Schrankes zu finden.

Ein Vorteil, es können beliebig viele Fächer angehängt werden, ohne die ganze Liste mit Before/After und Insert durch zu gehen.

Hoffe ich konnte dir einen kleinen oder weiteren Denkanstoß geben.

mfg skey
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

BIG BUG

BeitragDi, Jan 29, 2008 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Panthzer, Du hast Amuls Beitrag immer noch nicht kapiert. Hab ja zwischendrin gerätselt ob Du doch irgendwas anderes meinen könntest, aber Dein letzter Post bestätigt dass Du doch genau das willst, was Dir hier mehrfach vorgestellt wurde.

Und dass Du jetzt die Möglichkeit Types in Types definieren zu können für nutzlos hälst, finde ich sehr witzig.

Vielleicht solltest Du Dir die Beispiele mal ansehen?

Eine andere Lösung für die Problematik(mit schöner Anwendung Type in Type ohne Object/Handle):
https://www.blitzforum.de/foru...php?t=1052

Naja, aber auch die Lösung wäre einfacher als mit Object und Handle, daher gibt es sie wohl auch nicht Smile

EDIT: oha sowieso schon zwei neue Beiträge...
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

BladeRunner

Moderator

BeitragMi, Jan 30, 2008 7:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe auch nicht deine Aussage, Types in Types gingen nicht, Panthzer. Sie gehen sehr wohl, und dir wurden mehrere Möglichkeiten genannt wie Du sie nutzen kannst.
Es obliegt halt nur dem Anwender sich selbst um die Referenzen innerhalb der Types zu kümmern, d.h. es fehlt lediglich eine automatisierte Verwaltung. Aber rein speedtechnisch ist das kein Problem.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Panthzer

BeitragMi, Jan 30, 2008 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mir jetzt BigBugs Bäume Beispiel angesehen:
Jetzt ist alles klar. Auch das mit dem Type in Type. Mir hat einfach ein Beispiel für den Umgang gefehlt.

Mein Problem war wenn man mit der handle-Variante arbeitet hätte es keinen Unterschied gemacht ob ich nun Type in Type nehme oder einfach zwei einzelne Types.

Deshalb dachte ich Type in Type ist überflüssig. Logisch oder? Wenns auch ohne geht....

BigBugs Ansatz zeigt dass man sehr wohl zusätzlichen Nutzen aus Type in Type ziehen kann Very Happy

In dem Punkt hab ich mich also geirrt, weil keine Erfahrung mit verschachtelten Types hatte und auch keine Beispiele gefunden hab. Ich konnte ja nur das hinnehmen was man mir sagt.

Deshalb dachte ich halt dass die handle-Variante die einzige möglich keit war und war SEHR enttäuscht von BlitzBasic.

Ich bin jetzt weiter gekommen und das ist was zählt. Danke nochmal

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group