Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleife schleift nicht wie erwartet (aber jetzt schon) (https://www.delphipraxis.net/105359-schleife-schleift-nicht-wie-erwartet-aber-jetzt-schon.html)

TBx 20. Dez 2007 14:27

Re: Schlaufe schlauft nicht wie erwartet
 
Halo,

nimm mal aus Zeile 27 diesen Code ganz raus:
Delphi-Quellcode:
listview1.ItemIndex:=listview1.ItemIndex+1;
Stattdessen fügst Du zwischen Zeile 5 und 6 folgendes ein:

Delphi-Quellcode:
listview1.ItemIndex:=i;
Das Inkrementieren des Itemindexes ist föllig überflüssig, da Du zu jeder Zeit den gewünschten ItemIndex in i stehen hast.

Der Fehler tritt auf, weil beim letzten Schleifendurchlauf der Index auf einen Wert erhöhtz werden würde, der nicht gültig ist.

Hope it helps

onlinekater

PS: Trotz roten Kastens, da die Lösung von Gollum den Index an der falschen Stelle setzt.

Muetze1 20. Dez 2007 14:31

Re: Schlaufe schlauft nicht wie erwartet
 
Habe ich schon in Beitrag #2 geschrieben und
Zitat:

Zitat von toyoman
Die Änderung macht allerdings keinen Unterschied


TBx 20. Dez 2007 14:36

Re: Schlaufe schlauft nicht wie erwartet
 
@Muetze1: Ich denke mal, die Anmerkung, dass die Änderung keinen Unterschied bringe bezog sich nicht auf Deinen Beitrag, sondern auf den ersten von Gollum :-)

toyoman 20. Dez 2007 14:52

Re: Schlaufe schlauft nicht wie erwartet
 
Zitat:

Zitat von Hawkeye219
Hallo,

Gegen das Speicherleck solltest du ebenfalls etwas unternehmen. Die Stringliste wird nicht freigegeben, falls der Anwender die Suchschleife vorzeitig beendet. Bei einen Einsatz von TRY..FINALLY könntest du auch den Cursor an einer Stelle restaurieren.

Gruß Hawkeye

ich hab doch liste.free drin ? nicht gesehen? das sollte doch reichen oder?

toyoman 20. Dez 2007 14:54

Re: Schlaufe schlauft nicht wie erwartet
 
Zitat:

Zitat von onlinekater
@Muetze1: Ich denke mal, die Anmerkung, dass die Änderung keinen Unterschied bringe bezog sich nicht auf Deinen Beitrag, sondern auf den ersten von Gollum :-)

stimmt :)

inherited 20. Dez 2007 14:59

Re: Schlaufe schlauft nicht wie erwartet
 
Zitat:

Zitat von toyoman
ich hab doch liste.free drin ? nicht gesehen? das sollte doch reichen oder?

Nein, leider nicht. Wenn es zB zu einem Fehler kommt wird die ganze prozedur abgebrochen, er kommt also garnicht zu deinem .free und gibt sie nicht frei. Dafür gibt es den try..finally-Block. Der bewirkt, dass wenn etwas in dem try-Teil schief geht, bevor er abbricht auf jeden Fall noch der finally-Block ausgeführt wird. Wenn alles glatt läuft sowieso.
Damit kannst du sicherstellen, dass die liste auf jeden Fall freigegeben wird.

toyoman 20. Dez 2007 15:01

Re: Schlaufe schlauft nicht wie erwartet
 
ok das ist ein argument! danke

Zitat:

Zitat von inherited
Zitat:

Zitat von toyoman
ich hab doch liste.free drin ? nicht gesehen? das sollte doch reichen oder?

Dafür gibt es den try..finally-Block. Der bewirkt, dass wenn etwas in dem try-Teil schief geht, bevor er abbricht auf jeden Fall noch der finally-Block ausgeführt wird. Wenn alles glatt läuft sowieso.
Damit kannst du sicherstellen, dass die liste auf jeden Fall freigegeben wird.


maerc 20. Dez 2007 15:31

Re: Schlaufe schlauft nicht wie erwartet
 
Zitat:

Zitat von toyoman
Zitat:

Zitat von Muetze1
Schlaufe? Nicht eher eine Schleife? :gruebel:

Wird durch " btnoeffnen.Click; " vllt. ein Eintrag in der ListView oder der Liste entfernt?

von mir aus schleife.. ;)

dann änder doch mal den threadtitel, damit man weiß um was es geht ;) :wiejetzt:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 Uhr.
Seite 2 von 2     12   

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