Autor Beitrag
ralfi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 153



BeitragVerfasst: Fr 23.05.03 13:43 
Hallo!
Ich habe in einer ListBox einige Links. Diese Links werden in einer Schleife mit einem NMHTTP-Comp gesendet, die Ergebnisse (body) werden dann gefiltert und sortiert etc. Das Problemm ist, das wenn ich ein ListBox-Item lösche, kommt eine Fehlermeldung: '' is not a valid intege value
obwohl ich die Schleife rückwährts mache:

ausblenden Quelltext
1:
2:
for i := ListBox1.Items.Count - 1 downto 0
...


Nach der Meldungs ist die Schleife komplett unterbrochen. Wie kann ich das verhindern? Im schlimmsten Fall: kann ich die ErrorMessages irgendwie abfangen? Dann könnte ich eine Notstart-Funktion erstellen, die die Schleife nach dem löschen wieder aktivieren würde. Für jeden Tip bin ich dankbar!
Ex0rzist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: Fr 23.05.03 14:09 
ralfi hat folgendes geschrieben:
Das Problemm ist, das wenn ich ein ListBox-Item lösche, kommt eine Fehlermeldung: '' is not a valid intege value


Dieser Fehler liegt bestimmt nicht an deinem Schleifenkopf. Wo taucht es denn auf?

_________________
If accidentally read, induce vomitting.
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Fr 23.05.03 14:14 
Wie wäre es mit einer Abfrage:

ausblenden Delphi-Quelltext
1:
If ListBox1.Items.Count>0 Then Tue was..					


Deine Meldung heißt ja nichts weiter, als das "leer" (nichts) kein gültiger Integer-Wert ist. Den mußt du abfangen. Es darf nicht leer sein.

_________________
Hasta La Victoria Siempre
ralfi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 153



BeitragVerfasst: Fr 23.05.03 14:19 
Denke für ihre Tips. Das Problemm ist, die ListBox ist nicht leer! Wenn ich ein Item lösche, sind noch mehrere drin.
@Ex0rzist
Die Meldung taucht auf in Paar sekunden nach dem löschen. :?
Luncustaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Fr 23.05.03 15:42 
hi,

durchläufst du die listbox nachdem du gelöscht hast?

vllt musst du den itemindex händisch um eins zurücksetzen da du ja eines herrauslöschst oder du musst die listbox refreshen.

weis aber nicht genau obs daran liegt probier mal nach der löschenfuktion ein Listbox1.itemindex := listbox1.itemindex-1;



gr€€tz
alexschultze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 317



BeitragVerfasst: So 25.05.03 07:54 
der ItemIndex ist das markierte Feld! Falls du die gesamtzahl aller elemente haben willst solltest du
memo1.lines.count (oder ähnlich) probieren.
weiterhin -1 zu 0 ist incrementierent, also TO, downto ist in meinen Augen fehl am Platz, es wird ja mehr nicht weniger.

du könntest die gesamte schleife bzw. den bereich in dem du den fehler vermutest in einen TRY EXCEPT Block legen.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
TRY
for inti_the_integer:=000 to 123 do ..
showmessage('ouch');
end;

EXCEPT
showmessage('Es ist ein Fehler aufgetreten!');

END;

_________________
Von allen Dingen die ich verloren habe trauere ich meinem Verstand am meisten nach.