Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [AV] Timer soll in der Methode nicht existieren -> Läuft? (https://www.delphipraxis.net/118482-%5Bav%5D-timer-soll-der-methode-nicht-existieren-laeuft.html)

xZise 8. Aug 2008 13:04


[AV] Timer soll in der Methode nicht existieren -> Läuft?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo DP,

ich habe folgendes komisches Problem: Und zwar entwickle ich "Old Snakey" weiter und habe im Anhang die aktuelle Beta 5.1dev Problem dabei ist, dass sobald das 2. mal Futter gegessen wurde, in der Methode Eat; in der Zeile "tFramer.Interval := ..." eine AV auftaucht. Ich habe es debugt, und es leigt zu 99,99% imho an tFramer, da FDifficulty den richtigen Wert hat. Aber tFramer zeigt auch nicht auf nil (?). Aber das seltsame ist, dass er dannach einfach weiterarbeitet. Also ich entdecke keinen Fehler :(

MfG
xZise

xZise 10. Aug 2008 13:34

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
Liste der Anhänge anzeigen (Anzahl: 1)
Inzwischen kommt die AV jetzt wenn ich "pbMap.Repaint" aufrufe ?!

Und zwar nachdem ich das erste Futter gegessen habe?! Und ich finde, wie gesagt EINFACH nicht den Fehler.

MfG
xZise

zahor 12. Aug 2008 13:32

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also das ist echt komisch. Ich vermute den Fehler am ehesten in den Compiler-Einstellungen.
Denn nachdem ich den ja funktionierenden Beta 5 - Quelltext mit dem Beta 5.2 - Quelltext verglichen habe (Notepad++ mit Compare Plugin (standarmaessig dabei) kann ich sehr empfehlen! ist echt ne super Hilfe!!!), hab ich da keine AEnderungen finden koennen, die sowas ausloesen koennen.
Du kannst ja mal versuchen, ein neues Projekt zu erstellen und die ganzen Units hinzuzufuegen und dann compilieren, obs dann geht, oder kanns vllt. mal wer anderes compilieren? ich wiederhole mich ja nur ungern, hab hier aber grad kein delphi weil ohne eigenen pc und ohne adminrechte in england...

xZise 12. Aug 2008 14:00

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
Das ist ja gerade mein Problem: Ich finde den verdammten Fehler nicht.

Könnte mal jemand anderes es testen? Und zahor: Hast du das Programm auch ausgeführt und gespielt? Tritt bei dir auch der Fehler auf?

MfG
xZise

zahor 12. Aug 2008 14:40

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
jupp, fehler tritt auch auf, wenn ich die exe ausfuehre und was futtere. selber kompilieren geht zur zeit leider nicht :-(

zahor 15. Aug 2008 15:31

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
*bump* any progress?

omata 15. Aug 2008 15:40

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
Schalte mal deine Bereichsprüfung ein, dann wirst du sofort einen ganz tollen Fehler bekommen, sobald du ein Element aufgesammelt hast.

So hier mal die Lösung für das Problem...
Delphi-Quellcode:
    // Letztes Feld dannach wieder begehbar machen
    if    (FSnakey.p[High(FSnakey.p)].X >= 0)
       and (FSnakey.p[High(FSnakey.p)].Y >= 0) then
    begin
      FBelegt[FSnakey.p[High(FSnakey.p)].X, FSnakey.p[High(FSnakey.p)].Y] := false;
    end;

    // alles "vorshiften" - von hinten nach vorne, sonst waere
    // die Schlange ja nur 1 Kaestchen groß, egal welches Level
    for i := High(FSnakey.p) downto 1 do
    begin
      FSnakey.p[i].x := FSnakey.p[i - 1].x;
      FSnakey.p[i].y := FSnakey.p[i - 1].y;
      if (FSnakey.p[i].x >= 0) and (FSnakey.p[i].y >= 0) then begin
        FBelegt[FSnakey.p[i].x, FSnakey.p[i].y] := true;
      end;
    end;
Deine Anwendung hat auch noch Speicherlecks, füge mal folgendes hinzu...
Delphi-Quellcode:
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
  FBackground.free;
  FGoodies.free;
  FLog.free;
end;

zahor 15. Aug 2008 16:33

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
ah, da wird ja das neue schlangenstueck auf (-1/-1) gelegt, oder? und deshalb gibts ne exception, da belegt fuer diesen bereich nicht definiert ist :idea:
kann das mal jemand ausprobieren? [wiederholung nr 7635]ich hab hier ja kein delphi...[/wiederholung nr 7635] also wenns das war... waer's echt geil.
aber imho war das doch auch bei der Beta 5 der gleiche Code, oder? Oder hat sich da was geaendert???
wie dem auch sei, hauptsache es funzt! bitte bitte testen! beta 5.2 oben laden und code aendern + compilieren waere alles...

omata 15. Aug 2008 16:58

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
Natürlich ist das der gleich Code. Aber mit Bereichfehlern ist nicht zu spassen. Wenn du die nicht berücksichtigst, dann können ganz fiese Fehler auftreten, die nicht immer gleich sein müssen. Diese zu finden ist prinzipell unmöglich. Deshalb ist die Bereichsprüfung ja auch so wichtig. Der Default ist aber leider, dass sie deaktiviert ist. Also immer aktivieren! Sonst kannst du dich gleich im nächsten Irrenhaus anmelden.

Ich habe das getestet, dass funktioniert.

xZise 15. Aug 2008 18:02

Re: [AV] Timer soll in der Methode nicht existieren -> Lä
 
Zitat:

Zitat von omata
Natürlich ist das der gleich Code. Aber mit Bereichfehlern ist nicht zu spassen. Wenn du die nicht berücksichtigst, dann können ganz fiese Fehler auftreten, die nicht immer gleich sein müssen. Diese zu finden ist prinzipell unmöglich. Deshalb ist die Bereichsprüfung ja auch so wichtig. Der Default ist aber leider, dass sie deaktiviert ist. Also immer aktivieren! Sonst kannst du dich gleich im nächsten Irrenhaus anmelden.

Ich habe das getestet, dass funktioniert.

Okay danke, sollte ich tatsächlich mal aktivieren :) Und ich kann omata bestätigen. Nachdem ich die beiden Stellen korrigiert habe läufts wieder!

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz