ab einem bestimmten Unterprogramm verschwindet der Inhalt verschiedener globaler Variablen, ohne dass codemäßig etwas mit diesen gemacht wurde.
weiterer komischer Effekt:
im berüchtigten Unterprogramm beginnt ein lokaler Integer „i“ in einer for i := 1 to 40 Schleife rückwärts zu laufen (40, 39, 38…).
Der Code ist wirklich sauber. keine Hints und Warnings beim Compilieren
ab einem bestimmten Unterprogramm verschwindet der Inhalt
verschiedener globaler Variablen, ohne dass codemäßig etwas
mit diesen gemacht wurde.
Dann ist es sicher ein Bug im Compiler. Verwende doch mal eine andere Delphi-Version (mit Delphi 7 Enterprise Vollversion funzt es bestimmt).
weiterer komischer Effekt:
im berüchtigten Unterprogramm beginnt ein lokaler Integer „i“
in einer for i := 1 to 40 Schleife rückwärts zu laufen (40,
39, 38…).
Der Code ist wirklich sauber. keine Hints und Warnings beim
Compilieren
Wenn Du beim Compilieren keine solche Hints und Warnings angezeigt bekommst, kannst Du einen Fehler in Deinem (Unter-)Programm mit Sicherheit ausschließen.
weiterer komischer Effekt:
im berüchtigten Unterprogramm beginnt ein lokaler Integer „i“
in einer for i := 1 to 40 Schleife rückwärts zu laufen (40,
39, 38…).
Hallo Eric,
ich vermute, dass du dieses Effekt hast, wenn du das Programm in Einzelschritten abarbeitest und dir dabei die Werte anzeigen lässt.
Beispiel1:
n:=0;
for i:=0 to 4 do
n:=n+1;
Dabei ist es egal ob die Verialble i von 0 bis 4 oder von 5 bis 1 läuft. Der Code-Optimizer von Delphi erzeugt hier den Code, der am schnellsten ausführbar ist.
Beispiel2
for i:=0 to 4 do
n[i]:=i*2;
Hier läuft die Variable i von 0 bis 4.
Der Effekt tritt also nur dann auf, wenn i innerhalb der Schleife nicht verwendet wird.
Viele Grüße, Joachim
PS: Eventuell ist auch der erste Effekt auf den Code-Optimizer zurückzuführen. Im Zweifelsfall solltest du dir den Inhalt der Variablen mit ShowMessage(…) anzeigen lassen.
ab einem bestimmten Unterprogramm verschwindet der Inhalt
verschiedener globaler Variablen, ohne dass codemäßig etwas
mit diesen gemacht wurde.
Dann ist es sicher ein Bug im Compiler. Verwende doch mal
eine andere Delphi-Version (mit Delphi 7 Enterprise
Vollversion funzt es bestimmt).
weiterer komischer Effekt:
im berüchtigten Unterprogramm beginnt ein lokaler Integer „i“
in einer for i := 1 to 40 Schleife rückwärts zu laufen (40,
39, 38…).
Der Code ist wirklich sauber. keine Hints und Warnings beim
Compilieren
Zu „Phänomen“ 2…
Solange der Compiler keinerlei Notwendigkeit dafür erkennt, daß er von 1 bis 40 zählen soll, lässt er das Compilat wirklich aus Performancegründen von 40 runter zur 1 zählen…
Wenn Du beim Compilieren keine solche Hints und Warnings
angezeigt bekommst, kannst Du einen Fehler in Deinem
(Unter-)Programm mit Sicherheit ausschließen.