Hier ein Beispielcode
Code: Alles auswählen
InitSprite()
initMouse()
OpenScreen(1024, 768, 16, "Filmregister")
Structure s_Liste
x.w
y.w
Auswahl.l
endStructure
Structure s_Film
Name.s
Schauspieler.s
...
...
endStructure
Global B_Listenabschnitt.w
Global B_Maus
B_listenAbschnitt = 0
B_Maus = 1
dim Liste.s_Liste(30)
NewList Film.s_Film()
LoadSprite(B_Listenabschnitt, "Bilder/Listenabschnitt.bmp")
LoadSprite(B_Maus, "Bilder/maus.bmp")
addElement(Film())
Film()\Name = Ich darf keine Namen nennen 1
addElement(Film())
Film()\Name = Ich darf keine Namen nennen 2
addElement(Film())
Film()\Name = Ich darf keine Namen nennen 3
repeat
ExamineMouse()
foreach Film()
for x = 1 to 30
Liste(x)\x = 48
Liste(x)\y = x*20 ; Positionen der Listenabschnitte
StartDrawing(ScreenOutput())
Drawingmode(3)
DrawText(Liste(x)\x, Liste(x)\y, Film()\Name, 0)
StopDrawing()
If SpriteCollision(B_Maus, MouseX(), MouseY(), B_ListenAbschnitt, Liste(x)\x, Liste(x)\y) and Mousebutton(1) ; wenn man einen Listenabschnitt Auswählt
Liste(x)\Auswahl = 1 ; aktiviere ihn
endif
If Liste(x)\Auswahl = 1 ; ist er aktiviert
ChangeCurrentElement(Film(), x) ; dann wechsle auf das Element das die Zahl des Abschnitts trägt die vorher gewählt wurde
endif
; Ich möchte also in einer Liste von 3 Filmen z.B. den 2. Wählen. Die Zahl X ist also = 2. Nun möchte ich das ich das 2. Element auswähle. Doch wenn ich das durch die Oben gezeigten Zeilen mache, kommt die Fehlermeldung "Invail Memory Access"
FlipBuffers()
ClearScreen(RGB(200, 200, 200))
Until Beenden = 1