kleines Mathematisches Problem mit Tabelle!
Verfasst: 20.05.2007 15:27
Ich habe eine Tabelle gemacht. In dieser Tabelle sind Linked Lists Aufgelistet. Die Tabelle fasst 29 einzelne Felder. D.H. Wenn mehr als 29 Teile der Liste existieren, muss eine neue Seite gemacht werden. Bis dahin ist alles kein Prolem. Doch wenn die dritte Seite beginnt, werden die teile nicht mehr Aufgelistet, weil die Position ausserhalb des Bildschirms ist. Ich versuche das ganze kurz mal in code-form zu zeigen.
So das sieht auf den ersten Blick kompliziert aus und ich bin mir auch sicher es geht auch einfacher. Aber ich habe herausgefunden das wenn die Seitenazahl gerade ist, einfach alles mit der Pazellengröße multiupliziert werden muss, aber wenn sie ungerade ist(ausser 1) erst die Seite -1 gerechnet werden muss. Nun wird mir aber ab der Seite 3 nichts mehr angezeigt, woran liegt das?
Code: Alles auswählen
ForEach film()
film()\ID = ListIndex(Film())
If film()\ID < 29 ;Wenn die Position des Films kleiner als der einer Maximalen Anzahl einer Seite entspricht
Film()\Seite = Film()\ID/29+1 ;Dann ist die Seite = 1
Else ;Ist sie größer
Film()\Seite = Film()\ID/29*Seite\Anzahl ;Dann entspricht sie der Position des Films geteilt durch die Seitenzahl
EndIf
film()\x = 40 ;Die x Position in der Tabelle
If film()\ID < 29 ;Wenn die ID kleiner ist als der Anzahl der Abschnitte einer tabelle
Film()\y = Film()\ID*20 ;Dann ist die y Position mit 20 zu Multiplizieren(20 ist die Höhe einer Pazelle)
ElseIf Film()\ID >= 28 And Not Film()\seite%2 ;Ist die ID größer und ist die Seite durch 2 Teilbar
Film()\y = (film()\ID - (Film()\Seite -1)*29)*20 ;dann tritt diese Rechnung in Krafkt
ElseIf Film()\Position >= 28 and Film()\Seite%2 ;Ist sie nicht durch 2 Teilbar, also ungerade
Film()\y = (film()\ID - (Film()\Seite*29))*20 ;dann diese
EndIf
next