Noch eine Frage über Types!

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Blitzer

Betreff: Noch eine Frage über Types!

BeitragFr, Aug 20, 2004 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist, wenn eine eine Variable abgekoppelt wird von einer typekollektion!

Ich lese immer, dass sie noch Existiert aber man kann nicht zugreifen oder so!

Das versteh ich nicht ganz!

Embarassed Embarassed Embarassed Embarassed Embarassed
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------

Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte
Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte

Hubsi

BeitragFr, Aug 20, 2004 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe Deinen Post nicht? Was meinst Du mit abkoppeln?
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Blitzer

Betreff: z.B.

BeitragFr, Aug 20, 2004 23:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Zum Beispiel so!
Code: [AUSKLAPPEN]
Type Ball
   Field X
End Type

Boll.Ball=New Ball

Bill.Ball=Boll


Schnell Geschrieben.

Ist jetzt Boll.Ball auch noch da, oder nicht!
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------

Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte
Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte
 

Timo

BeitragSa, Aug 21, 2004 8:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum so blöde Variablennamen???

Code: [AUSKLAPPEN]
Type Baum
   Field Blatt
End Type

Fichte.Baum=New Baum
Tanne.Baum=Fichte


so jetzt gibt es nur EINEN Typeintrag, aber zwei Handles dafür, das heißt Fichte und Tanne zeigen auf den selben Variablen eintrag. Fichte gibts also noch, genauso wie Tanne Wink

Gruß Timo

Blitzer

Betreff: Noch eine Frage!

BeitragSa, Aug 21, 2004 10:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist, wenn es so aussieht:

Code: [AUSKLAPPEN]
Type Baum
   Field Blatt
End Type

Tanne.Baum=New Baum
Fichte.Baum=Tanne

Eiche.Baum=New Baum
Ficht.Baum=Eiche


gibt es dann noch die Tanne?
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------

Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte
Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte

simi

BeitragSa, Aug 21, 2004 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, warum sollte es sie nicht mehr geben, hast sie ja nicht gelöscht.

DivineDominion

BeitragSa, Aug 21, 2004 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Tanne gibt es noch. Kannst mit Tanne\... noch auf deren Inhalt zugreifen. "Fichte" hingegen ist nur ein Handle. Das Handle ist erst das von Tanne (ein Synonym quasi, oder ein Verweis), dann das von Eiche. Lediglich der verweis ist anders geworden.

Code: [AUSKLAPPEN]
Type Baum
   Field Blatt
End Type

Fichte.Baum=New Baum
Birke.Baum = New Baum
Fichte.Baum = Birke


Damit überschreibst du auch nur das Handle!
,, Handle: (Comput) ein spezielles digitales Erkennungszeichen für Programme so daß das Betriebssystem sie finden und öffnen kann ´´

Hier eben nicht für Programme sondern für Types. Du überschreibst das Handle, den Inhalt aber nicht. Mit Fichte\.. greifst du jetzt immer auf den Inhalt von Birke zu.
Birke und Fichte sind damit im Prinzip das selbe.
Du hast auf den eigentlichen Fichteninalt keinen direkten Zugriff mehr, dazu müsstest du eine For-Each schleife nehmen um es zu überprüfen. Kannst dort dann sehen, dass es noch immer 2 Einträge gibt. Stell mal ein "Field Name$" in die Typedefinition und setzte für Ficht eund Birke namen, überschreib Fichtes Handle und gebe die Namen in einer For-Each aus.
Due Namen sind noch immer da.
christian.tietze@gmail.com - https://christiantietze.de
macOS

Markus2

Betreff: Re: Noch eine Frage!

BeitragSa, Aug 21, 2004 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Also BaumType da sind alle Bäume drin
aber du kannst dir einen Eintrag merken und
dafür extra Variablen nehmen .

Code: [AUSKLAPPEN]


global Baum1.BaumType
global Baum2.BaumType
global Baum.BaumType

Baum.BaumType=New BaumType
Baum\Art$="Tanne"
Baum1=Baum

Baum.BaumType=New BaumType
Baum\Art$="Fiche"
Baum2=Baum

for Baum.BaumType = each BaumType
 debuglog Baum\Art$
next

 debuglog Baum1\Art$
 debuglog Baum2\Art$

;Das sollte man dann vermeiden weil dann ist nicht mehr Baum1=Baum1 ;-)
for Baum1.BaumType = each BaumType
 debuglog Baum1\Art$
next

Jolinah

BeitragSo, Aug 22, 2004 22:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke es sollte ja jetzt längstens klar sein wie es gemeint ist.
Trotzdem Very Happy

Ich finde man kann es auch noch recht leicht erklären mit so nem Bsp:

Code: [AUSKLAPPEN]

Type Baum
Field Blatt$
Field groesse
Field ent
End Type

Tanne.Baum = new Baum
Tanne\Blatt$ = "Nadeln"

Fichte.Baum = new Baum
Fichte\Blatt$ = "Bla"

Birke.Baum = new Baum
Birke\Blatt$ = "Blabla"

;1000 weitere Bäume auf nem Terrain etc.......


;Auswahlroutine mit EntityPick oder was ähnliches
...
For b.Baum = each Baum
  If b\ent = PickedEntity()
    Ausgewaehlt.Baum = b
  Endif
Next
...
;Ende der Auswahlroutine


;Bei Maustaste rechts den ausgewählten Baum um 1 vergrössern.

If MouseHit(2)
  If not Ausgewaehlt = null
    Ausgewaehlt\groesse = Ausgewaehlt\groesse + 1
  Endif
Endif



Daran sieht man gut das Ausgewaehlt nur ein Handle ist das auf nen Eintrag zeigt. (Natürlich sind ja auch all die anderen nur Handles)

Wenn man jetzt Ausgewaehlt löschen würde dann wird halt auch die andere Variable ungültig die auf das Objekt zeigt.

Wenn Ausgewaehlt = Tanne und man Delete Ausgewaehlt schreibt dann ist Tanne ab sofort auch Null.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group