Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listenindex überschrietet das Maximum -> Welche Liste? (https://www.delphipraxis.net/71817-listenindex-ueberschrietet-das-maximum-welche-liste.html)

TheAn00bis 21. Jun 2006 14:21


Listenindex überschrietet das Maximum -> Welche Liste?
 
Hey,

wenn der Debugger (kommt das überhaupt vom Debugger?) die Fehlermeldung "Listendindex überschreitet das Maximum(...)" ausgibt, ist es dann möglich herauszufinden, um welche Liste es sich handelt, ohne (ewig ;)) den Quelltext durchforsten zu müssen? Oder weiß der Debugger selber nicht, um welche Liste es sich handelt?

Das würde häufig viel Zeit ersparen, vor allem, wenn es sich um Programme handelt, die nicht wirklich prozedual aufgebaut sind, weil durch einen Timer (z.B. das OnIdle) ständig etwas aufgerufen wird.

Ich denkmal nicht, dass es möglich ist, denn sonst würde es ja in der Fehlermeldung stehen, aber Fragen schadet ja nie...

P.S.: Diese Art der Fehlermeldung kommt ja irgendwann in der Laufzeit, wer sendet sie also? Das Programm selber oder der Delphi-Debugger oder wer?

DGL-luke 21. Jun 2006 14:24

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
Eigentlcih sollte der Debugger das abfangen und dir die Möglichkeit geben, direkt in die entsprechende Zeile zu springen.

Ansonsten einfach ein paar Breakpoints machen, dann kannst du den fehler mit Heron eingrenzen :mrgreen:

TheAn00bis 21. Jun 2006 14:27

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
Zitat:

Zitat von DGL-luke
Eigentlcih sollte der Debugger das abfangen und dir die Möglichkeit geben, direkt in die entsprechende Zeile zu springen.

Ansonsten einfach ein paar Breakpoints machen, dann kannst du den fehler mit Heron eingrenzen :mrgreen:

Delphi gibt nur die Meldung aus, springt aber nicht in die Zeile. Außerdem kann es das Programm danach nicht beenden ("Prozess kann nicht beendet werden.") und nach etwa einer Minute bekomme ich Delphi schließlich beendet, denn vorher kann ich zwar im Quelltext etwas ändern, aber nicht neu compilieren. ;) Aber ich wollte das auch nicht auf mein Problem beziehen, sondern allgemein wissen.
Breakpoints machen das häufig nur geringfügig einfacher, wenn wie gesagt vieles so ziemlich gleichzeitig geschieht.

DGL-luke 21. Jun 2006 14:29

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
hmm.... du musst doch ungefähr wissen, wann dein programm auf welche liste zugreift.

aber hast du eventuell dem debugger gesagt, er soll "EListIndexOutOfBounds" ignorieren? (Wo ging das gleich noch mal? ;) muss irgendwo in den projektoptionen stehen)

shmia 21. Jun 2006 14:35

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
Die Liste hat keinen Namen, denn es ist keine Komponente.
Der Debugger kennt nur den Zeiger auf das Objekt. Er könnte dir den Klassennamen
([TObject].Classname) mitteilen, aber das hat Borland leider versäumt (vielleicht um die Benutzer nicht zu sehr zu verwirren).
==> Hier hilft nur debuggen:
Programm bis zur Exception rennen lassen.
Aufrufstack mit STRG-ALT-S anzeigen
und dann mit Einzelschritt weiter.

TheAn00bis 21. Jun 2006 14:41

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
Zitat:

Zitat von DGL-luke
hmm.... du musst doch ungefähr wissen, wann dein programm auf welche liste zugreift.

aber hast du eventuell dem debugger gesagt, er soll "EListIndexOutOfBounds" ignorieren? (Wo ging das gleich noch mal? ;) muss irgendwo in den projektoptionen stehen)

Ja, klar weiß ich das, aber es wäre um einiges angenehmer, wenn ich direkt und sicher wüsste, um welche Liste es sich handelt. Natürlich bekomme ich das Problem auch so gelöst, nur das dauert immer etwas länger.

Vielleicht hab ich dem Debugger echt mal gesagt, er solle "EListIndexOutOfBounds" ignoerieren? Ich finde die Einstellung gerade nicht, wenn jemand auf die schnelle weiß, wo ich das in Delphi2005 einstellen kann wäre ich dankbar.

Zitat:

Zitat von shmia
Die Liste hat keinen Namen, denn es ist keine Komponente.
Der Debugger kennt nur den Zeiger auf das Objekt. Er könnte dir den Klassennamen
([TObject].Classname) mitteilen, aber das hat Borland leider versäumt (vielleicht um die Benutzer nicht zu sehr zu verwirren).
==> Hier hilft nur debuggen:
Programm bis zur Exception rennen lassen.
Aufrufstack mit STRG-ALT-S anzeigen
und dann mit Einzelschritt weiter.

Okay, schade, hätte ja sein können. :)

TonyR 21. Jun 2006 14:45

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
Bei der Fehlermeldung "Listenindex überschreitet das Maximum" (die auch schon häufig bekam) hat es sich bei mir darum gehandelt, dass ich auf ein Element in einer Liste zugegriffen habe was es gar nicht gab.
Z.B.: Liste mit 5 Elementen - Zugriff auf Element 6 oder -1

DGL-luke 21. Jun 2006 14:50

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
das wissen wir schon. aber trotzdem danke.

nochmal:

kannst du die meldung mal posten? wenn die meldung kommt, einfach strg+c.

TheAn00bis 21. Jun 2006 14:55

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
Zitat:

Zitat von DGL-luke
kannst du die meldung mal posten? wenn die meldung kommt, einfach strg+c.

Gerne, aber ich glaube nicht, dass es da viel zu entdecken gibt:

Zitat:

---------------------------
Brickprj
---------------------------
Listenindex überschreitet das Maximum (0)
---------------------------
OK
---------------------------

Luckie 21. Jun 2006 14:59

Re: Listenindex überschrietet das Maximum -> Welche Liste
 
Wie viele (String)Listen hast du denn in deinem Programm, dass du nicht weißt welche es ist?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 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