Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem bei meiner If-anweisung
Smartie - Mi 04.05.05 12:05
Titel: Problem bei meiner If-anweisung
Servus!
Es ist schon fast peinlich, aber ich hab ein Problem bei einer If-anweisung.
Ich habs durchgeschaut, ich hab es auch mit anderen änlichen IF-Anweisungen verglichen, ich kann mir den Fehler nicht erklären, wo er herkommen soll.
Mein Code sieht so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure Bereichskontrolle; Begin if (ZielArray[z] <= Bereichsmax[z]) and (ZielArray[z] >= Bereichsmin[z]) then begin E4_Abfrage := false; end else begin E4_Abfrage := true; ERROR_Bereich := 'ERROR4'; ZielArray[z] := FloattoStr(ZielArray[z]) + ' ERROR4'; end; end; |
So, mein "problem" ist nun, daß sobald die IF-Bedingung nicht zutrifft, er gar nicht in die else-anweisung springt, sondern gleich zum ende geht.
:nixweiss: :les: :nixweiss: :gruebel: :nixweiss:
Wenn jemand weiß, was ich hier nun wieder für n Schleiß übersehen hab, wär ich dankbar für einen entsprechenden Hinweis.
Lieben Gruß und Danke
Smartie
HolgerB - Mi 04.05.05 12:15
Hallo Smartie,
prüfe mal die Werte in deinen Variablen. Der Code ist meines Wissens nach richtig. Vielleicht ist min > max?
Gruß
Holger
Smartie - Mi 04.05.05 12:16
Also, er macht diesen Scheiß nur wenn es eben nicht stimmt.
außerdem, wenn min<max wäre, wär die if-anweisung jaschließlich auch nichterfüllt, und er müte auch dann in die else springen.
*Weitergrübelt*
Lieben Gruß
Smartie
delfiphan - Mi 04.05.05 12:17
Einen Fehler seh ich direkt keinen. Der Fehler ist so halt evtl. nicht reproduzierbar.
Smartie hat folgendes geschrieben: |
So, mein "problem" ist nun, daß sobald die IF-Bedingung nicht zutrifft, er gar nicht in die else-anweisung springt, sondern gleich zum ende geht. |
Wie kommst du darauf? Bist du im Einzelschritt durchgegangen?
jasocul - Mi 04.05.05 12:18
Es gibt eigentlich nur einen Fall, warum das so sein sollte:
Der Compiler hat deinen Source "optimiert". D.h.: Dass, was im "else" steht ist überflüssig. Meint zumindest der Compiler.
Du siehst das ganz schnell, wenn du alles kompilierst und vor den Source-Zeilen kein blauer Punkt ist.
Aber eigentlich glaube ich das in dem Fall nicht.
Am besten alles Speichern, komplett kompilieren und dann nochmal prüfen.
Smartie - Mi 04.05.05 12:19
delfiphan hat folgendes geschrieben: |
Wie kommst du darauf? Bist du im Einzelschritt durchgegangen? |
Ja, ganz genau! Das mach ich immer, wenn ich einen Fehler nicht fidne, schau ich eben mal an, wie er es durchläuft, und laß mir auch die werte anzeigen.
Und da seh ich, daß er von Zeile 4 sofort in Zeile 14 springt.
jasocul - Mi 04.05.05 12:21
Noch eine Idee:
Bekommst du vielleicht eine Exception und lässt dir die nicht anzeigen? Kann man ja in der IDE ausschalten.
delfiphan - Mi 04.05.05 12:23
Versuch mal try..except und kompilier den Block mit {$r+}.
Smartie - Mi 04.05.05 12:33
Aua,
ok, ich hab in ner halben Stunde Feierabend für heute, kümmere mich am Montag darum. aber da scheint es grad irgednwo ne richtig böse Exception zu geben, Danke Jasocul! Das Problem scheint darin zu lieben, der ZielArray[z] ein Array of Variant ist.
Danke und lieben Gruß
Smartie
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!