GLBasic forum

Other languages => GLBasic - de => Topic started by: Kosta on 2008-Sep-22

Title: delete / foreach
Post by: Kosta on 2008-Sep-22
Hallo,

habe mein aktuelles Projekt ein bisschen aufgeräumt ...nun funzt es nicht mehr...

Habe nun das Problem identifiziert (glaube ich): Lt. Doku muss DELETE innerhalb der FOREACH Schleife aufgerufen werden.

Mein DELETE ist aber in einer Funktion ausgelagert worden, wird aber innerhalb der FOREACH Schleife aufgerufen ...

Kann man da noch was tun? oder muss ich alles zurückbasteln?
Title: Re: delete / foreach
Post by: mull on 2008-Sep-22
Geht nur wie in der Hilfe steht innerhalb der Foreach Schleife.

Nimm doch DIMDEL Feld[], Nr

Aber achte darauf das in der Scheife nicht mehr nach dem Rauswurf auf das Feld[Nr] zugegriffen wird.
Title: Re: delete / foreach
Post by: Kitty Hello on 2008-Sep-23
Aua! Du willst innerhalb einer Funktion was löschen?
Mach ein RETURN FALSE, und fang' das in der FOREACH Schleife ab.
Title: Re: delete / foreach
Post by: Schranz0r on 2008-Sep-23
Japp Gernot hat recht, entweder bei der Funktion True/False returnen und das dann abfragen, oder die Funktion doch weglassen und es im "normalen Code" stehen lassen :)
Title: Re: delete / foreach
Post by: Kosta on 2008-Sep-23
danke

habe es wieder zurückgebastelt.....

...hatte die Funktion erzeugt um die Übersichtlichkeit zu erhöhen 

-> mit Return/False (Testumbau hatte zwar funktioniert) war die Lesbarkeit/Übersichtlichkeit dann doch eher schlechter als vorher

Title: Re: delete / foreach
Post by: Kosta on 2008-Sep-24
irgendwie denkt mein Programm INC währe ein Feld/Variable?  oder intepretier ich hier den Fehler falsch?

oder kann ich in der foreach schleife für bonus keine anderen Feldwerte pop aendern? (Kann ich mir ja garnicht vorstellen)...aber wo hakts ?

*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.2008.210 - 3D, NET
"Tartarus.gbas"(179) error : wrong argument type : INC, arg no: 1
TYPE  is not declared



Auszug wo der Fehler angezeigt wird:

Hier beginnt die foreach Schleife (foreach bonus in bonuss[])
.....snipp.....
Code (glbasic) Select
// Check Colission with Bonus
IF BOXCOLL(bonus.x, bonus.y, bonus.sizex, bonus.sizey, playerx,playery, playersizex,playersizey)
SELECT bonus.typ
CASE 1
//W:
INC playerspeed,0.25
IF playerspeed>2.5 THEN playerspeed = 2.5
DELETE bonus
CASE 2
//O:
INC pop.power,1
INC pop.typ,1
IF pop.typ>4 THEN pop.typ=4
DELETE bonus
CASE 3
//G:
CASE 4
//B:
CASE 5
//L:
INC lives,1
DELETE bonus
ENDSELECT
ENDIF

...schnapp...
next   

Hier springt der Cursor beim Fehler:

INC pop.power,1
INC pop.typ,1
Title: Re: delete / foreach
Post by: Kitty Hello on 2008-Sep-24
Er kennt das Objekt "pop" nicht. Hast Du vorher LOCAL pop AS XY gemacht?
Oder wie/wo/was ist pop?
Title: Re: delete / foreach
Post by: Kosta on 2008-Sep-24
oehmm...... nee   :whistle:  hab ich nicht gemacht  :whistle:

:bed:

ich habe ein

LOCAL shots[] AS SHOT

..und habe pop immer in der foreach schleife benutzt...

   FOREACH pop IN shots[]

:bed:

...aber wie ich im code sehe bin garnicht mehr in der foreach-pop-Schleife sondern in der foreach-bonus-Schleife

:'(
Title: Re: delete / foreach
Post by: Kitty Hello on 2008-Sep-24
Wow, ist mein Compiler gut  :coke: