AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE "List index out of bounds (1)" beim Beenden von D2007

"List index out of bounds (1)" beim Beenden von D2007

Ein Thema von Glühwürmchen · begonnen am 27. Dez 2013 · letzter Beitrag vom 1. Apr 2014
Antwort Antwort
Benutzerbild von Glühwürmchen
Glühwürmchen

Registriert seit: 31. Okt 2003
Ort: Pfinztal
156 Beiträge
 
Delphi 2010 Professional
 
#1

"List index out of bounds (1)" beim Beenden von D2007

  Alt 27. Dez 2013, 14:47
Also ich starte die IDE von D2007.
Dann öffne ich ein Projekt, das ohne nennenswerte Warnings und Hints compiliert und einwandfrei läuft.
Ohne irgend etwas an dem Projekt zu ändern, klicke ich "Files" - "Close All".
Die IDE schließt das Projekt, zeigt mir aber die Fehlermeldung: "List index out of bounds (1)".

Ein Klick auf Details bringt folgendes Ergebnis:
[20034FCD]{rtl100.bpl } Classes.TStringList.Delete (Line 4984, "common\Classes.pas" + 1) + $13
[20033A3D]{rtl100.bpl } Classes.TStrings.Error (Line 4379, "common\Classes.pas" + 1) + $11
[20034FCD]{rtl100.bpl } Classes.TStringList.Delete (Line 4984, "common\Classes.pas" + 1) + $13
[201E4029]{vcl100.bpl } Tabs.TTabList.Delete (Line 514, "Tabs.pas" + 2) + $4
[20AA31E6]{coreide100.bpl} WatchWin.TWatchWindow.ClearList (Line 1253, "..\debugger\WatchWin.pas" + 11) + $13
[20AAA908]{coreide100.bpl} DebugCmds.TDebugCommands.WatchViewClearList (Line 187, "..\debugger\DebugCmds.pas" + 1) + $2
[20A464C1]{coreide100.bpl} DebuggerMgr.TDebuggerMgr.NotifyProjectGroupClosed (Line 1281, "DebuggerMgr.pas" + 3) + $F
[004149CD]{bds.exe } AppMain.TAppBuilder.CloseProjectGroup (Line 2186, "ui\AppMain.pas" + 11) + $7
[004152E5]{bds.exe } AppMain.TAppBuilder.FileCloseAll (Line 2432, "ui\AppMain.pas" + 5) + $2
[0041531C]{bds.exe } AppMain.TAppBuilder.FileCloseAll (Line 2440, "ui\AppMain.pas" + 13) + $9
[2004018B]{rtl100.bpl } Classes.TBasicAction.Execute (Line 11081, "common\Classes.pas" + 3) + $7
[20151359]{vcl100.bpl } ActnList.TContainedAction.Execute (Line 388, "ActnList.pas" + 1) + $2C
[201520BC]{vcl100.bpl } ActnList.TCustomAction.Execute (Line 1000, "ActnList.pas" + 7) + $8
[20040057]{rtl100.bpl } Classes.TBasicActionLink.Execute (Line 11010, "common\Classes.pas" + 2) + $7
[2013CA15]{vcl100.bpl } Controls.TControl.Click (Line 5227, "Controls.pas" + 7) + $7
[2019BCF0]{vcl100.bpl } ComCtrls.TToolButton.Click (Line 17003, "ComCtrls.pas" + 0) + $0
[2013CEA7]{vcl100.bpl } Controls.TControl.WMLButtonUp (Line 5365, "Controls.pas" + 6) + $3E
[2013C527]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6
[2013C1B4]{vcl100.bpl } Controls.TControl.Perform (Line 5021, "Controls.pas" + 5) + $C
[20161B8F]{vcl100.bpl } Forms.TApplication.WndProc (Line 7769, "Forms.pas" + 82) + $E
[2013C1B4]{vcl100.bpl } Controls.TControl.Perform (Line 5021, "Controls.pas" + 5) + $C
[2013FEC6]{vcl100.bpl } Controls.GetControlAtPos (Line 7095, "Controls.pas" + 4) + $73
[2013FF8E]{vcl100.bpl } Controls.TWinControl.ControlAtPos (Line 7118, "Controls.pas" + 13) + $E
[2013C1B4]{vcl100.bpl } Controls.TControl.Perform (Line 5021, "Controls.pas" + 5) + $C
[20140199]{vcl100.bpl } Controls.TWinControl.IsControlMouseMsg (Line 7182, "Controls.pas" + 15) + $1F
[20140561]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7269, "Controls.pas" + 76) + $6
[2019DD33]{vcl100.bpl } ComCtrls.TToolBar.UpdateButtonState (Line 18148, "ComCtrls.pas" + 5) + $1C
[2019DD76]{vcl100.bpl } ComCtrls.TToolBar.UpdateButtonStates (Line 18158, "ComCtrls.pas" + 3) + $4
[201A06A9]{vcl100.bpl } ComCtrls.TToolBar.WndProc (Line 19588, "ComCtrls.pas" + 80) + $6
[2013FDD0]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6
[20040E4C]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
[2004A49E]{rtl100.bpl } Contnrs.TComponentList.GetItems (Line 380, "common\Contnrs.pas" + 1) + $4
[201625F0]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8105, "Forms.pas" + 23) + $1
[2016262A]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $4
[2016291F]{vcl100.bpl } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3
[0042297A]{bds.exe } bds.bds (Line 195, "" + 7) + $7

Woran könnte das liegen?
--------
Das Problem bei der Sache ist folgendes:
Im Programm habe ich zwei Formulare, deren GUI-Events, soweit möglich, über verschiedene Actions einer ActionList abgearbeitet werden.
Dies Actions habe ich den jeweiligen SpeedButtons zugeordnet. Bei dieser Zuordnung verbinded die IDE auch sofort das ClickEvent des Buttons mit der ActionBlablaExecute-Methode.
Wenn ich das Programm starte, werden die entsprechenden Events bzw. die zugeordneten Actions ausgeführt.
Drücke ich nach beenden des Programms STRG+Shift+S (Alles Speichern) und schließe anschließend die IDE, kommt besagte Fehlermeldung.

Wenn ich dann das Projekt erneut öffne, sind meine Actions nur noch zum Teil den jeweiligen Events zugeordnet.
Das heißt:
Einige SpeedButtons haben sowohl bei "Action" als auch bei "OnClick" noch einen Eintrag.
Einige SpeedButtons haben zwar bei "Action" noch einen Eintrag aber nicht mehr bei "OnClick"
und einige SpeedButtons haben weder bei "Action" noch bei "OnClick" noch einen Eintrag.

Will ich also mein Projekt speichern, die IDE schließen und morgen weiter machen, muss ich erst wieder die Actions zuweisen.
Will gar mein Kollege mein Projekt weiterentwickeln, wird er fürchterlich zu fluchen anfangen....

-------------------
Was kann ich tun?

Da der Fehler offensichtlich meine ActionLists beeinträchtigt (wer weiß was noch?), habe ich mir die Zeit genommen, auf jedes Formular eine neue ActionList zu legen, alle vorhandenen Actions unter neuem Namen erneut anzulegen, den ActionExecutes den entsprechenden Quellcode mitgegeben, die alten Actions und danach die ActionLists gelöscht und abschließend die neuen Actions wieder den jeweiligen Events zugeordnet.
Sprich: Ich habe aufgeräumt.
Das Ergebnis ist jedoch enttäuschend!

Und jetzt? Hilfe!
Gruß Glühwürmchen
<><
  Mit Zitat antworten Zitat
Benutzerbild von Glühwürmchen
Glühwürmchen

Registriert seit: 31. Okt 2003
Ort: Pfinztal
156 Beiträge
 
Delphi 2010 Professional
 
#2

AW: "List index out of bounds (1)" beim Beenden von D2007

  Alt 7. Mär 2014, 07:32
Hier kommt die Maus...:

Die Ursache für dieses Problem liegt in der Quelle, wo die einzelnen .Pas-Dateien liegen.
Die Projektdatei lag in einem Verzeichnis auf dem Laufwerk V:\
Die verwendeten Units liegen zwar alle im selben Verzeichnis auf dem Laufwerk V:\,
wurden aber aus einem identischen Verzeichnis genommen, das auf dem Laufwerk O:\ liegt.


Innerhalb der IDE fiel das nicht auf, weil das Verzeichnis, das angezeigt wurde, wenn man mit der Maus über dem DateiReiter des Texteditors einer Unit verweilt, zum Verzeichnis der Projektdatei passte und in allen Fällen O:\... anzeigte.

Selbst als ich alle Units schloss, und die Projektdatei unter V:\ mit einem Doppelcklick wieder öffnete, ludt er die eingebundenen Units aus O:\.
Erst als ich mit STRG+F12 kontrollieren wollte, ob evtl. noch weitere Units zum Projekt gehören, die nicht im Verzeichnis liegen, viel mir unten in der Statuszeile dieses Fensters die unterschiedlichen Laufwerksbuchstaben auf.

Die Lösung stellte sich in dem Moment ein, in dem ich die erste eingebundene Unit aus dem Projekt entfernte und die entsprechende Unit aus dem richtigen Laufwerk wieder einband.
Aus irgend einem Grund erledigte die IDE dann den Rest und korrigierte bei allen anderen Units ebenfalls den Pfad.

-> Projekt neu erzeugen.
-> Projekt compilieren (damit die Version auch mitkriegt, dass sie gestiegen ist)
-> Projekt speichern
-> IDE schließen
=> Keine Fehlermeldung mehr!!
Gruß Glühwürmchen
<><

Geändert von Glühwürmchen ( 7. Mär 2014 um 07:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Glühwürmchen
Glühwürmchen

Registriert seit: 31. Okt 2003
Ort: Pfinztal
156 Beiträge
 
Delphi 2010 Professional
 
#3

AW: "List index out of bounds (1)" beim Beenden von D2007

  Alt 7. Mär 2014, 07:36
so und wo kann ich jetzt einstellen, dass die Frage nicht mehr offen ist?
Gruß Glühwürmchen
<><
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
647 Beiträge
 
FreePascal / Lazarus
 
#4

AW: "List index out of bounds (1)" beim Beenden von D2007

  Alt 7. Mär 2014, 07:47
Ein Dauerbrenner, ich weiß nicht über wie viele IDE-Versionen ich das immer wieder berichtet und QC-Einträge erstellt habe... kommt auch, wenn ein Projekt mal mit deutschem, mal mit englischem Delphi geöffnet war... oder wenn es mehrere Dateien mit gleichem Namen in unterschiedlichen Ordnern gibt...

Freut mich, dass auch jemand anderes mal so ein "List index out of bounds" gesehen hat, nachdem ich mir so oft habe unterstellen lassen müssen, das wäre nicht real
  Mit Zitat antworten Zitat
Benutzerbild von Glühwürmchen
Glühwürmchen

Registriert seit: 31. Okt 2003
Ort: Pfinztal
156 Beiträge
 
Delphi 2010 Professional
 
#5

AW: "List index out of bounds (1)" beim Beenden von D2007

  Alt 1. Apr 2014, 06:14
Ah, "Frage beantwortet" - Einstellung erscheint nur als anzuhäkelnde Checkbox, unter zusätzliche Einstellungen, und nur, wenn man gerade eine Antwort verfasst.

Frage beantwortet. (Die zweite auch.)
Gruß Glühwürmchen
<><
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: "List index out of bounds (1)" beim Beenden von D2007

  Alt 1. Apr 2014, 10:53
Die Projektdatei lag in einem Verzeichnis auf dem Laufwerk V:\
Die verwendeten Units liegen zwar alle im selben Verzeichnis auf dem Laufwerk V:\
Ich empfehle den Delphi Sourcecode grundsätzlich nur auf lokalen Platten zu kompilieren.
Bei grösseren Projekten mit hunderten Units macht das einen ganz erheblichen Unterschied in der Kompiliergeschwindigkeit aus.
Dies wirkt sich auch gleichermaßen auch auf das Code Completion (Intellisense) aus und kann beim Editieren sehr stören.
fork me on Github
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
415 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: "List index out of bounds (1)" beim Beenden von D2007

  Alt 1. Apr 2014, 13:31
Ich empfehle den Delphi Sourcecode grundsätzlich nur auf lokalen Platten zu kompilieren.
Bei grösseren Projekten mit hunderten Units macht das einen ganz erheblichen Unterschied in der Kompiliergeschwindigkeit aus.
Ver- und Einverstanden.
Dies wirkt sich auch gleichermaßen auch auf das Code Completion (Intellisense) aus und kann beim Editieren sehr stören.
Das hier verstehe ich nicht. Inwiefern und aus welchem Grund soll das auf die Code Completition einen Einfluss haben?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf