Types und deren After, Before befehle WIE funzen Sie ?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Silbersurfer

Betreff: Types und deren After, Before befehle WIE funzen Sie ?

BeitragSa, Jun 12, 2004 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

habe ein kleines problem mit Types Exclamation

und zwar mit dem Befehl After und Before,

Ich möchte gerne Manuel meine Types abarbeiten nur bekomme ich dann
immer die Fehlermeldung Memory access violation

mein code sieht ungefähr so aus

Code: [AUSKLAPPEN]
Type sprite
   Field x#,y#,z#
   Field r,g,b   
End Type

For x=0 To 100
    s.sprite = New sprite
    s\x=0:s\y=0:s\z=0
Next

s=First sprite

While Not KeyHit(1)
      If s.sprite = Null
           s=First sprite
      Else   
           s.sprite=After s.sprite
      EndIf
Wend


warum gibt es immer diesen fehler Question

genauso hier die Fehlermeldung Object does not exit Exclamation

Code: [AUSKLAPPEN]
While Not KeyHit(1)
        ;If s.sprite=Null Then s=First Sprite
        While s.sprite <> Null
           s.sprite=After s.sprite
           Print Str(s\x)
        Wend
      
Wend


Was ist denn da bloß falsch ? oder sehe ich den Wald vor lauter Bäumen
nicht mehr

gruss

Silbersurfer
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD
Hompage : http://home.arcor.de/silbersurfer01/
Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip

Firstdeathmaker

BeitragSa, Jun 12, 2004 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
While Not KeyHit(1)
;If s.sprite=Null Then s=First Sprite
While s.sprite <> Null
s.sprite=After s.sprite

Print Str(s\x)
Wend

Wend


Das Problem ist, dass du zwar den aktuellen s.sprite auf existenz prüfst, aber nicht prüfst, ob es eventuell schon der letzte in der Liste ist, und somit der darauffolgende (after) garnicht existiert: Object does not exist
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Bob

BeitragSa, Jun 12, 2004 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Silbersurfer,

eine bessere methode um deine sprites zu durchlaufen were
for each

While Not KeyHit(1)

For s.sprite = Each sprite
Print s\x
Next


Wend
 

Silbersurfer

BeitragSa, Jun 12, 2004 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
danke erstmal für die schnelle Anwort,

Hallo Firstdeathmaker

das muß ich ja auch nicht da die schleife ja beendet wird, wenn kein Eintrag mehr vorhanden ist. Aber ich habe den fehler schon gefunden Idea

wie ich schon sagte:
oder sehe ich den Wald vor lauter Bäumen
nicht mehr
Da Ich ja den Eintrag auslese und er ja schon auf den ersten Eintrag steht
muß Ich es ja so machen. man man einfach zu lange vor denZeilen gehockt

Code: [AUSKLAPPEN]
While Not KeyHit(1)
        ;If s.sprite=Null Then s=First Sprite
        While s.sprite <> Null
           Print Str(s\x)
           s.sprite=After s.sprite           
        Wend
       
Wend



hi Bob

Ich möchte das Manuel machen
nicht erst die ganze scheife abarbeiten
aber trotzdem DANKE
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD
Hompage : http://home.arcor.de/silbersurfer01/
Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip
 

Omenaton_2

BeitragMo, Jun 14, 2004 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Kleine Anmerkung.
Am Anfang als ich zum ersten Mal was über die Types gelesen habe, war auch mir nicht alles sofort ganz klar.
Inzwischen mache ich sehr viel mit Types.

Früher wollte ich auch mit After und Before hin und her gehen, etc. Das war ziemlich umständlich.
Ich benutze in meinem sehr langen Code mit unzähligen Types niemals diese After, etc Befehle. Ich gebe jedem Type-Objekt einen ID-Nummer und dann laufe ich die Schleife mit For Next Each durch und wenn ich bei der gesuchten ID bin, dann verlasse ich die Schleife mit Exit und dann habe ich den "Zeiger " auf den Type-Objekt den ich gesucht habe. Das ist sehr einfach und zuverlässig.

Es kann natürlich sein, daß du in deiner Anwendung doch After, etc brauchst.
 

Silbersurfer

BeitragMi, Jun 16, 2004 9:16
Antworten mit Zitat
Benutzer-Profile anzeigen
hi Omenaton_2,

Ja diesen Gedanken habe ich auch schon, aber wie ist es wenn z.b
6000 einträge vorhanden sind und ich Daten im mitleren bereich des
öfteren brauche da bin ich doch mit den After,Before befehlen
wesentlich schneller als wenn ich ständige die kompletten einträge
durchgehe oder Question

gruss

Silbersurfer
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD
Hompage : http://home.arcor.de/silbersurfer01/
Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip
 

Omenaton_2

BeitragMi, Jun 16, 2004 11:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke es ist so wie du vermutest. Ich habe normalerweise nicht mehr 50-200 Type-Objekte. Das geht noch extrem schnell.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group