In der Hilfe steht ja, dass dies nur in der Foreach-next schleife geht und eben in DIMs.
Ich würde ganz gern ein komplettes Objekt aus einer Type Kollektion löschen wollen.
Also bspw. Buch AS TBuch
Delete Buch IN TBuch
geht das irgendwie?
Oder hab ich das falsch verstanden?
ähm...
moment...
du erzeugst die Instanz am Anfang mit
LOCAL Buch[] AS TBuch
dann in der foreach schleife machst du dann z.b.
foreach buchauswahl in Buch[]
bla bla bla
delete buchauswahl
blubb blubb
next
Du musst aber wirklich in der foreach schleife löschen, d.h. es geht NICHT, dass du innerhalb der foreach-schleife eine funktion oder sub aufzurufen und dort versuchst das zu löschen.
Ähm ja, aber ich würde gern einfach nur so Delete Buch machen.
Type TBuch
bla
ENDTYPE
Local Buch AS TBuch
Foreach Buch IN TBUCH
DELETE Buch
Next
so richtig, habs jetzt einfach mal so hingeschmiert, kann sein, dass ich nen schusselfehler drin hab.mag types nich so besonders, aaaber ich brauch sie.grins
sorry....habe meinen obigen Text korrigiert....
deine foreach Zaehlschleife ist nicht gleich dein Array
siehe obiges Beispiel
Ich will aber nicht buchauswahl löschen, sondern Buch.
Muss denn ein Buch[] stehen?
Schau....
Type TBuch
ENDTYPE
Local Buch AS TBuch
und Buch will ich komplett löschen.Am Ende des Programms zum Beispiel
In Buch stehen alle deine Bücher drin -> (das Array)
Wenn du nicht mehrere Bücher brauchst (gleichzeitig), musst du kein Array machen.
Bei meinem Beispiel:
die Foreach-schleife geht jeden Wert des Arrays durch (nennt es beim durchlauf "Buchauswahl")...
jetzt ist die Frage ...willst du alle Bücher löschen, oder nur dieses eine in der Buchauswahl
-------------------
wenn du alle löschen willst, definiere dein Array neu mit den Wert 0
mmm praktisch sieht es eigentlich so aus, oder so solls aussehen.
Type TSnow
snow
ENDTYPE
local flake AS TSnow
flake.snow blablabla
usw. usw.
und eben am Ende
DELETE flake
oder wäre es dann so richtiger?
local flake[] AS TSnow
flake.snow blablabla
usw. usw.
FOREACH blasnow IN flake[]
DELETE blasnow
NEXT
bestimmt hab ich jetzt grad irgendwas durcheinandergebracht, liegt vermutlich daran, dass ich jetzt wirklich ein wenig verwirrt bin.
verstehe den Sinn deiner Frage nicht so recht.
Wenn du ein Array eines TYPE anlegst, kannst du einzelne Elemente daraus mit DELETE löschen wie Kosta es beschrieben hat.
Wenn du nur eine Variable eines TYPE hast ... welchen Sinn macht es die löschen zu wollen. Ebenso könntest du dich dann fragen, ob du eine String oder Zahlvariable löschen könntest, also ich meine jetzt löschen im Sinne von Speicher freigeben.
mir ist nicht klar, was du mit den Schneeflocken machen willst (Eigenschaft snow).... Nehmen wir folg. an... du willst die Schneeflocken darstellen (von oben fallend) und später willst du feststellen, dass wenn sie am Boden sind, dass sie gelöscht werden sollen)
dann sieht es so aus:
TYPE schneesturm
x // x-wert
y // y-wert
ENDTYPE
local schnee[] as schneesturm // als Array, da es wahrscheinlich mehrere Schneeflocken geben wird
foreach schneeflocke in schnee[] // Gehe alle Schneeflocken im Array Schnee durch
inc schneeflocke.y,1
if schneeflocke.y > 240 then delete schneeflocke
print "*",schneeflocke.x,schneeflocke.y
next
eben gerade hab ich das auch geschnallt.
das mit dem [] .
war vorher ein klitzkleiner denkfehler von mir. :whistle:
Ich errinnere mich mal ein kleines Tutorial gemacht zu haben...