Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus) (https://www.delphipraxis.net/192713-argument-ausserhalb-des-gueltigen-bereichs-schleife-zaehlt-ins-minus.html)

SneakyBagels 12. Mai 2017 19:08


Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Ich bekomme leider seit einiger Zeit oben genannte Fehlermeldung aber nur im 64bit-Kompilat.

Die Meldung kommt an einer Stelle an der ich auf das property einer generischen TObjectListe zugreife.
32bit wie gesagt absolut kein Problem und das hier ist eine absolute Standardzeile nicht einmal die Mühe wert sie hier einzufügen.
Wäre es etwas sehr Ernstes müsste es ja auch im 32bit-Kompilat auftauchen.

Ein kleiner Test hat gerade gezeigt, dass meine Schleife bis mindestens -1 zählt obwohl bei 0 Schluss sein sollte!
Delphi-Quellcode:
 for i := cList.Count - 1 downto 0 do
  begin
   IntToStr(i));
Wie kann das sein?

Edit: Problem wurde erledigt. Seite 5 Beitrag 41 http://www.delphipraxis.net/1371259-post41.html

zeras 12. Mai 2017 19:41

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Lass dir doch einmal vor der Schleife den Wert von
Delphi-Quellcode:
cList.Count
anzeigen.
Nicht das der vorher schon negativ ist.
Oder zeige in jeder Schleife den Wert an.
Ich glaube hier kaum, dass es bei einer solch einfachen Funktion ein Problem geben sollte.
Ist vielleicht deine Liste leer?

SneakyBagels 12. Mai 2017 19:57

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Delphi-Quellcode:
for i := cList.Count - 1 downto 0 do
Ich der Startwert von Count ist 8.

nahpets 12. Mai 2017 19:57

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Delphi-Quellcode:
if cList.Count > 0 then
begin
  for i := cList.Count - 1 downto 0 do
  begin
    IntToStr(i));
  end;
end else begin
  Meldung leere Liste
end;
Wobei mich bei einer leeren Liste schon interessieren würde, ob bei einem
Delphi-Quellcode:
for i := -1 downto 0 do
begin
  ShowMessage('Diese Meldung zu sehen ist.');
end;

SneakyBagels 12. Mai 2017 20:00

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Die Liste ist befüllt und hat 8 Einträge.
Die Zählung beginnt bei 8 und soll bei 0 aufhören (downto 0). Geht aber ins Minus.

gammatester 12. Mai 2017 20:12

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Zitat:

Zitat von SneakyBagels (Beitrag 1371178)
Die Liste ist befüllt und hat 8 Einträge.
Die Zählung beginnt bei 8 und soll bei 0 aufhören (downto 0). Geht aber ins Minus.

Laut Code sollte die Zählung bei 8 Elementen doch bei 7 beginnen:?:

SneakyBagels 12. Mai 2017 20:21

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Folgende Testdaten sind vorhanden
Datei1.txt bis Datei8.txt

Eine Showmessage vor der Schleife zeigt "Count: 8".
Eine Showmessage in der Schleife zeigt "i = 7".... bis "i = 0" und dann geht es noch weiter runter bis -1.

Nothilfe schafft aktuell
Delphi-Quellcode:
if i < 0 then Break;
Das ist aber nur bei 64bit nicht bei 32bit.

nahpets 12. Mai 2017 20:30

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Bleibt der Fehler auch, wenn Du das mal so abänderst?
Delphi-Quellcode:
var
  Anzahl : Integer;

begin
  ...
  Anzahl := cList.Count - 1;
  for i := Anzahl downto 0 do
  begin
    IntToStr(i));
  end;
  ...
end;

himitsu 12. Mai 2017 20:33

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Welche Delphi-Version?

Es gab mal den Bug, wo Int64 teilweise wie UInt64 behandelt wurde. (oder war's andersrum)

SneakyBagels 12. Mai 2017 21:07

AW: Argument außerhalb des gültigen Bereichs (for-Schleife zählt ins Minus)
 
Zitat:

Bleibt der Fehler auch, wenn Du das mal so abänderst?
Ja. Denn Anzahl enthält dann ja cList.Count wo begonnen wird zu zählen.

Tokyo.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.
Seite 1 von 5  1 23     Letzte »    

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