Der gibt garnichts aus, nur die
Exception tritt wieder auf.
Das ganze läuft aber nicht in einem Thread? (wegen der MessageBox)
Ansonsten sieht es eher so aus, als wenn da irgendwas anderes total zerschossen wäre und nur hier zufällig erst einen Fehler ausgelöst wird, wenn sich nichtmal die MessageBox zeigt.
Die
Exception fliegt aus dem IntToHex, ich bin mit dem Debugger soweit in den Code hinuntergestiegen, wie noch benannte Calls erkennbar waren.
Heute habe ich nochmal die ursprünglichen Daten angesehen, das Feld enthält tatsächlich 8x00, drei darauf folgende Doubles, die mit NaN initialisiert wurden, 000000000000F8FF.
Das Programm hat zwar parallele Threads, die Daten (zum Zeitpunkt des Fehlers) stammen aus der eigenen Initialisierung, erst später kommen die Daten von einem anderen Prozess (per Pipe) - dann tritt der Fehler aber auch nicht mehr auf. Die Messageboxen werden dann anständig angezeigt.
Wie gesagt, der Try/Except umgeht das Problem vollständig, ich würde nur gern wissen, was denn an der Logik falsch ist. Unmittelbar nach dem Aufruf der Funktion mit diesem Wert, wird sie mit drei anderen Feldern des Records aufgerufen, die exakt gleich ( := 0; ) initialisiert werden. Dabei kommt keine
Exception.
Ich habe auch versucht, die Werte mit NaN zu initialisieren und entsprechend abzufragen. Dann tritt die
Exception nicht mehr in der Funkion auf, sondern irgendwann später und schlägt mit einer Meldung an der Oberfläche auf