AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Listindex überschreitet Maximum von Combobox
Thema durchsuchen
Ansicht
Themen-Optionen

Listindex überschreitet Maximum von Combobox

Ein Thema von Cruentus · begonnen am 8. Mär 2010 · letzter Beitrag vom 8. Mär 2010
Antwort Antwort
Cruentus

Registriert seit: 22. Apr 2009
32 Beiträge
 
#1

Listindex überschreitet Maximum von Combobox

  Alt 8. Mär 2010, 20:56
Hallo allerseits!

Zurzeit arbeite ich an einem kleinen Programm für die Schule, in welchem ich Einträge aus einer Combobox bearbeite. Und zwar füge ich im OnShow-Ereignis des Formulars einzelne Einträge über Combobox.Items.Strings[i]:= 'Text' in die Combobox ein. Funktioniert soweit auch. Von da an wird man auf ein weiteres Formular weiterverwiesen. Wenn ich nun aber per "Zurück"-Button auf das Formular mit der Combobox zurückkehre erhalte ich die Fehlermeldung
Zitat:
"Listindex überschreitet Maximum(0)".
Ich verstehe ehrlich gesagt nicht, weshalb ich diesen Fehler erhalte, die Einträge der Combobox sind von 0 bis 5 ohne Unterbrechung erhalten und werden beim OnShow nur neu überschrieben. Liegt da dennoch der Fehler oder kann der noch woanders liegen?

Danke schon mal für die Hilfe

Cruentus
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Listindex überschreitet Maximum von Combobox

  Alt 8. Mär 2010, 21:01
Der Fehler *muss* wo anders liegen oder du clearst du ComboBox irgenwie. Die genauen Zusammenhänge werden aus deinem Post nicht wirklich klar. Du kannst vor jedem Zugriff auf die ComboBox mal zu Debug-Zwecken (sehr schmutzig!) und ShowMessage(IntToStr(ComboBox.Items.Count)); machen. Wenn immer 5 raus kommt, dann greifst du irgendwann mal auf den Index 5 oder größer zu. (bei 5 Einträgen sind ja die Indizes von 0-4 belegt)
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Tom

Registriert seit: 8. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: Listindex überschreitet Maximum von Combobox

  Alt 8. Mär 2010, 21:13
Zitat von Cruentus:
Combobox.Items.Strings[i]:= 'Text'
Sind die Einträge schon vorhanden? Ansonsten wäre .add nicht schlecht.
  Mit Zitat antworten Zitat
Cruentus

Registriert seit: 22. Apr 2009
32 Beiträge
 
#4

Re: Listindex überschreitet Maximum von Combobox

  Alt 8. Mär 2010, 21:27
Vielen Dank schon mal für die schnelle Hilfe!

Ich hab den Tipp mal angewandt. Wenn ich Einträge aus der Combobox auswähle, werden die ausgewählten per Code automatisch gelöscht, bevor ich zum nächsten Formular komme. Deshalb steht im Onshow-Ereignis auch die Anweisung, dass die Combobox komplett mit Einträgen gefüllt werden soll. Nachdem ich beispielsweise zwei Einträge habe löschen lassen, zeigt mir die Message, dass items.count nur noch 4 statt 6 beträgt, soweit so gut.
Nun allerdings kommt das Problem: Ich überschreibe sämtliche Einträge von 0 bis 5 wieder mit Text, das sollte ja auch eigentlich funktionieren. Das Auffüllen steht unmittelbar hinter dem Befehl ShowMessage, es erfolgt kein weiterer Zugriff auf die Werte der Combobox. Der Fehler scheint demnach dann aufzutreten, wenn ich die zuvor gelöschten Bereiche wieder beschreiben möchte.

Hoffe, ich konnte das einigermaßen anschaulich darlegen.

Cruentus
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

Re: Listindex überschreitet Maximum von Combobox

  Alt 8. Mär 2010, 21:29
Befolge den Tipp von Tom. Ich habe gedacht die Einträge sind dauerhaft in der CB enthalten. Wenn die mal gelöscht werden, dann musst du diese mit Add oder Insert hinzufügen. So bekommst du neue Einträge in die Liste. Wenn schon welche vorhanden sind, dann kannst du via Index, wie du im ersten Post beschrieben hast, darauf zugreifen und diese ändern. Das Problem, welchest du hast, ist, dass du, wenn die CB leer ist, auf einen Eintrag zugreifen willst, der gar nicht existiert -> Exception.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Tom

Registriert seit: 8. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: Listindex überschreitet Maximum von Combobox

  Alt 8. Mär 2010, 21:32
Zitat von Cruentus:
Nachdem ich beispielsweise zwei Einträge habe löschen lassen, zeigt mir die Message, dass items.count nur noch 4 statt 6 beträgt, soweit so gut.
Nun allerdings kommt das Problem: Ich überschreibe sämtliche Einträge von 0 bis 5 wieder mit Text, das sollte ja auch eigentlich funktionieren.
Nein, Du hast nur vier Einträge. Ansonsten wäre .add nicht schlecht ...
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Listindex überschreitet Maximum von Combobox

  Alt 8. Mär 2010, 21:35
Das wäre richtig, da der Index deiner CB kleiner ist als den den Du schreiben willst. Versuch es mal so...

ComboBox1.Items.Add('Neuer Eintrag'); [EDIT]Wieder mal zu langsam, aber dann wenigstens der Vollständigkeit halber[/EDIT]

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Cruentus

Registriert seit: 22. Apr 2009
32 Beiträge
 
#8

Re: Listindex überschreitet Maximum von Combobox

  Alt 8. Mär 2010, 22:53
Okay, ich hab mal eure Vorschläge umgesetzt: die Combobox bei OnShow einmal komplett geleert und dann wieder mit items.add aufgefüllt. Das war dann auch des "Rätsels" Lösung, jetzt funktioniert alles einwandfrei und ohne, dass eine Fehlermeldung aufmucken würde.

Vielen Dank für die schnelle und kompetente Hilfe

Cruentus
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:36 Uhr.
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