![]() |
FOR-Schleifenvariable 'ti' kann nach Durchlauf undefiniert..
..sein
tag
Delphi-Quellcode:
ti := 0;
for ti := Low(myarray) to High(myarray) do begin end; mag mir jemand sagen was hieran falsch ist? delphi meldet den fehler s.o |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
Daran ist nichts falsch, aber wenn Du 'ti' nach dem Durchlauf der Schleife nutzt, dann kann es sein, dass darin kein sinnvoller Wert steht. Und das ist genau das, was Delphi sagt.
...:cat:... |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
moin sakura,
kann ich das irgendwie abschalten? denn im code der schleife (hab ich hier rausgelassen weil es zu lang wäre) ist 100% kein fehler, ich benutze "ti" lediglich als index für das array. manchmal wenn ich so kompiliere -> projekt -> alle projekte kompilieren.... gehn die fehler weg, und manchmal kommen sie wieder wenn ich mit dem grünen pfeil kompiliere und starte. Das ist ziemlich nervig da ich das fehler fenster unten ewig wegklicken muss. |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
Zitat:
...:cat:... |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
Hi,
doppelklick doch mal auf die Hinweismeldung, dann springste automatisch zur Zeile, die dieser Hinweis betrifft. Der Fehler kommt eigentlich nur, wenn 'ti' außerhalb bzw. nach der Schleife benutzt wird!
Delphi-Quellcode:
...
FOR ti:=0 TO 5 DO BEGIN myArray[ti] := 'test'; ... END; ... myArray[ti] := 'huch'; //<<-- Hinweis vom Compiler Gruß Stephan :dance: :xmas: |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
Hi Pseudemys Nelsoni,
die Compileroptimierung hat mir z.B. mal eine Vorschleife von oben nach unten durchlaufen lassen, anstatt wie von mir geplant von unten nach oben (also downto anstatt to). Ich habe mich nicht weiter drum gekümmert. In deinem Fall lässt sich die Warnung umgehen: schreibe einfach nach der For-Schleife folgendes:
Delphi-Quellcode:
Somit ist ti auch für den Compiler das was es sein sollte, und dein Problem ist erledigt.
ti := High(myarray);
Greetz alcaeus |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
@sakura, werd ich dann wohl machen müssen :\
@steve: ich shcreibe gerade einen irc server, ich habe ca 90 case teile in so gut wie jedem benutz ich ti (temp integer *g*) als laufvariable, die FOR-schleife initialisiert die variable doch eigentlich, naja werd ichs von nun an eben selbst machen :\ @alc: oder so, thx auch dir :) danke für die hilfe ;) BTW: coole smilies lol |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
Hi,
deswegen ja der Doppelklick auf die Hinweismeldung, dann weißt Du, wo das 'ti' wohl doch mal außerhalb ner Schleife benutzt wird ;) Ohne Fehler keine Fehlermeldung :mrgreen: Gruß Stephan :dance: :xmas: |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
Zitat:
moin steve ^^, jo klar weiss ich wo meine variable nochmal benutzt wird ;) mein code sieht ca so aus(und das 90~ mal):
Delphi-Quellcode:
deswegen ist mir das egal ob die variable dann undefiniert wäre... nur die meldung hat mich halt gestört
ti := 0;
case irgendwas of irgendwas1: begin for ti := Low(MyArray) to High(Myarray) do begin // irgendwas end; end; irgendwas2: begin for ti := Low(MyArray) to High(Myarray) do begin // irgendwas end; end; irgendwas...: begin for ti := Low(MyArray) to High(Myarray) do begin // irgendwas end; end; irgendwas90: begin for ti := Low(MyArray) to High(Myarray) do begin // irgendwas end; end; end; |
Re: FOR-Schleifenvariable 'ti' kann nach Durchlauf undefinie
Aber sagt mal...
Auch wenn der Copiler meckert, habe ich noch nie erlebt, dass nach
Delphi-Quellcode:
I ungleich N+1 ist... Darauf kann man sich doch verlassen, oder? :gruebel:
for I:= 0 to N do Irgendwas;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz