Autor Beitrag
Smartie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: Mi 04.05.05 12:05 
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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure Bereichskontrolle;
//var a : String;
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

Win XP
D6 Pers
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mi 04.05.05 12:17 
Einen Fehler seh ich direkt keinen. Der Fehler ist so halt evtl. nicht reproduzierbar.
user profile iconSmartie 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: Mi 04.05.05 12:19 
user profile icondelfiphan 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mi 04.05.05 12:23 
Versuch mal try..except und kompilier den Block mit {$r+}.
Smartie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: 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