![]() |
Weiß keiner wo der Fehler liegen könnte ?
|
Moin Braingrenade,
ich wollte mir gerade mal Deinen Source herunterladen. Könntest Du das bitte auch mal probieren? Bei beiden Dateien bekomme ich nur ein 0 Byte grosses Zip. |
Liste der Anhänge anzeigen (Anzahl: 1)
hoppsa ... :oops:
|
Die Fehlermeldung ist eindeutig.
Zu 100% fragst du eine Eigenschaft eines nil-Pointers ab. Durch Debuggen sollte es kein Problem sein die Stelle zu finden |
Moin braingrenade,
auch nachdem ich mir Deine Sourcen angesehen habe, ist mir nicht klar, wozu Du einen Pointer auf die Pointer der Objekte brauchst. Das was Du da mit PTSprite machst, kannst Du genausogut mit TSprite machen. Eine Objektvariable enthält immer nur den Pointer auf das Objekt und Du benutzt den Pointer auf einen Pointer. |
Zitat:
...:cat:... |
hmmmm...
Also falschen Typecast schließe ich aus, und die anderen sachen eigentlich auch , weil der Compiler bei einer Procedure völlig ohne Pointer anhält , ich glaube das problem liegt daran eine procedure von einem Pointer aus aufzurufen und variablen zu übergeben , ich denke das ich da irgendwas falsch gemacht habe... |
Ja stimmt, hab mich auch schon mit falschen Typecast's selbst in den Fuss geschossen :mrgreen:
Ohne den Code gesehen zu haben, tippe ich auf einen lokalen Pointer der nil ist, du aber einen globalen ansprechen willst. oder du willst eine Methode einer Klasse aufrufen, von dessen Klasse keine Instanz gebildet wurde. |
Moin braingrenade,
ich hab' diese Stelle in Verdacht:
Code:
function tspriteengine.Collision(sprite1,sprite2 : PTsprite): boolean;
var i, i2 : integer; spr1,spr2 : Tspriteset ; begin spr1 := sprite1.setsprpos; spr2 := sprite2.setsprpos; for i := 0 to high(spr1) do begin if i > 0 then if (spr1[i-1].paar = false) and (spr1[i].paar = true) then for i2 := 0 to high(spr2) do [color=red]// In dieser Schleife werden spr1 mit Index von spr2 und spr2 mit Index auf spr1 angesprochen, kann schiefgehen, wenn die arrays nicht gleich gross sind.[/color] if (spr1[i-1].x < spr2[i].x) and (spr1[i2].x > spr2[i2].x) and (spr1[i].y = spr2[i].y) then result := true else result:=false; end; end; |
Ah ja, da is ein fehler , aber der ist leider nicht das problem,
denn der code hängt ja schon früher ,aber trotzdem danke ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz