For Each macht Probleme?
Übersicht

Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
achso ok...aber den Type "head" gibt's immer noch nicht^^ Meinst du damit vll TWagonList??? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Schau dir am besten im Source an von welchem Typ das field head des Zuges ist.
du scheinst da glaub das eine oder andere durcheinander zu bringen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nunja... mag sein, dass ich etwas falsch verstehe, aber so wie ich das verstehe, müsste "zug.head" vorraussetzen, dass es den Type "head" gibt ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
args ...
zug\head sorry, bin von BM und anderen sprachen gewohnt, das man DAFÜR den Punkt nimmt und nicht zur deklaration. Mein Fehler ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das erklärt einiges ![]() Hier der Code: Code: [AUSKLAPPEN] Global i
zug.TZug = New TZug WList.TWagonList = New TWagonList WList\value = New TWagon ; das ist also unsere Lok zug\head = WList Zug\head\value\typ=5; !!!!!!!! Hier der Prüfwert !!!! ; 3 weitere Wagen hinzufügen For i = 1 To 3 AddToWagonList(WList,New TWagon) Next ; Der Zug besteht nun also aus der Lok und 3 Wagen drawtrain(zug) WaitKey End Type TVerkehr Field Zug.TZug End Type Type TZug Field head.TWagonList Field spd# Field spurwechsel Field spw_x Field spw_y End Type Type TWagon Field x Field y Field gr# Field typ End Type Type TWagonList Field Nextt.TWagonList Field value.TWagon End Type Function AddToWagonList(list.TWagonList, wagon.TWagon) temp.TWagonList = list While Handle(temp\Nextt) > 0 temp = temp\Nextt Wend t.TWagonList = New TWagonList t\value = wagon temp\Nextt = t temp\value\typ=i; !!!!!!!!!!!!!!!!!!!!!!!! Und HIER der Prüfwert !!!!!!! End Function Function RemoveFromWagonList(list.TWagonList, wagon.TWagon) temp.TWagonList = list\Nextt tprev.TWagonList = list While Handle(temp) > 0 If temp\value = wagon tprev\Nextt = temp\Nextt Delete temp Return EndIf tprev = temp temp = temp\Nextt Wend End Function Function DrawTrain(zug.TZug) temp.TWagonList = zug\head ; geht alle Wagen in der WagenListe des Zuges durch und zeichnet sie While Handle(temp) > 0 Print "Handle: "+Handle(temp\value) Print "Prüfwert: "+temp\value\typ temp = temp\Nextt Wend End Function Könnte mir bitte mal jemand sagen, ob und wo da ein Fehler ist? ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gibt es nen Grund warum du zum Handle konvertierst zum durchgehen? da kannst du auch direkt <> 0 testen ohne die Konvertierung. Die wird nur gebraucht wenn du den Type irgendwo drin "speichern" willst (bank zb). Ansonsten ist es pure "Zeitverschwendung" diese Konvertierung durchzuführen.
Was das Problem betrifft, so sehe ich das im moment im source eigentlich nicht ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, da ich wie ich denke relativ viel anders mache habe ich ein beispiel geschrieben, so wie ich es mache:
Code: [AUSKLAPPEN] Graphics 800,600,32,2 SetBuffer BackBuffer() Type Tzug Field firstt.Twagon Field art$ End Type Type Twagon Field zug.Tzug Field nxt.Twagon Field lst.Twagon Field art$ End Type y = 14 xdiff = 0 zug.Tzug=AddZug("ICE") AddWagon(zug.Tzug,"Zugmaschiene") AddWagon(zug.Tzug,"Erste Klasse") AddWagon(zug.Tzug,"Speise Wagen") AddWagon(zug.Tzug,"Zweite Klasse") zug.Tzug=AddZug("RE") AddWagon(zug.Tzug,"Billige Zugmaschiene") AddWagon(zug.Tzug,"Zweite Klasse 1") AddWagon(zug.Tzug,"Zweite Klasse 2") AddWagon(zug.Tzug,"Zweite Klasse 3") While Not KeyDown(1) xdiff = 0 Text 0,0,"Drücke Leertaste um den Letzen Wagon Abzukoppeln / Enter um den Letzten Zug zu löschen" For zug.Tzug = Each Tzug DrawZug(zug.Tzug,xdiff,y) xdiff = xdiff + 200 Next If KeyDown(57) And Last Twagon <> Null Then RemoveWagon(Last Twagon):Delay 250 If KeyDown(28) And Last Tzug <> Null Then RemoveZug (Last Tzug) :Delay 250 Flip Cls Wend Function AddZug.Tzug(art$) zug.Tzug = New Tzug zug\art$ = art$ Return (zug.Tzug) End Function Function AddWagon.Twagon(zug.Tzug,art$) wagon.Twagon = New Twagon wagon\zug.Tzug = zug.Tzug wagon\art$ = art$ If zug\firstt.Twagon = Null Then zug\firstt.Twagon=wagon.Twagon Else temp.Twagon=zug\firstt.Twagon If temp\nxt.Twagon <> Null Then Repeat temp.Twagon=temp\nxt.Twagon Until(temp\nxt.Twagon=Null) EndIf temp\nxt.Twagon = wagon.Twagon wagon\lst.Twagon = temp.Twagon EndIf End Function Function RemoveWagon(wagon.Twagon) If wagon\nxt.Twagon <> Null Then wagon\nxt\lst.Twagon = wagon\lst.Twagon If wagon\lst.Twagon <> Null Then wagon\lst\nxt.Twagon = wagon\nxt.Twagon Else zug.Tzug = wagon\zug.Tzug zug\firstt.Twagon = wagon\nxt.Twagon EndIf Delete wagon.Twagon End Function Function RemoveZug(zug.Tzug) wagon.Twagon = zug\firstt.Twagon If wagon.Twagon <> Null Then Repeat oldnxt.Twagon = wagon\nxt.Twagon RemoveWagon(wagon.Twagon) wagon.Twagon = oldnxt.Twagon Until ( wagon.Twagon = Null ) EndIf Delete zug.Tzug End Function Function DrawWagon(wagon.Twagon,x,y) Text x,y,wagon\art$ End Function Function DrawZug(zug.Tzug,x,y) ydiff = y Text x,y,zug\art$ ydiff = ydiff+FontHeight() wagon.Twagon = zug\firstt.Twagon If wagon.Twagon <> Null Then Repeat DrawWagon(wagon.Twagon,x,ydiff) ydiff = ydiff + FontHeight() wagon.Twagon = wagon\nxt.Twagon Until ( wagon.Twagon = Null ) EndIf End Function P.S.: Ja ich weiss eigntlich sollte man nicht soviel ( wie es von d-bug glaub ich mal liebevoll ausgedrück wurde ) codekacken, aber ich glaube wenn ich versuche das was ich tue in worte zu erklären, dann schreib ich noch morgen an dem Post, also lassen wir den code sprechen ![]() |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also MEIN Debugger motzt bei "temp\Nextt<>0" ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du gibst dir Mühe dir keine Gedanken zu geschriebenem zu machen, sonst würdest du selbst <> 0 bei Types zu <> null umdenken oder? | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nee nee^^ Ich kannte den Begriff "Null" noch gar nicht ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group