Hallo zusammen.
Ich bin auf ein Verhalten gestoßen, das ich mir nicht mehr erklären kann und würde gern mal eure Meinungen dazu hören:
Ich habe einige
DB-Operationen (ZEOS) in einer
DLL gekapselt. Beim ersten Aufruf einer bestimmten Funktion geht alles glatt. Das Problem (die
Access Violation) tritt auf, wenn ich die Methode das zweite mal aufrufe. Durch Debuggen der ZEOS-Komponenten bin ich auf die Zeile gestoßen die den Fehler verursacht - was mir aber auch nicht wirklich hilft:
Result.Value := Result.Value + ReadChar;
Result ist ein Record, Value ist vom Typ String, ReadChar vom Typ Char. Ich verstehe nicht, dass da eine
AV fliegt. Nachdem ich ein wenig im Auswerten-Dialog vom
BDS rumgespielt hab, hab ich gemerkt, dass ich den Wert von Result.Value erst mal gar nicht ändern kann. Ich habs versucht, neuen Wert eingegeben, aber die Variable hat scheinbar nur einen leeren String mitgekriegt. Erst beim zweiten Ändern kam der Wert in der Variablen an. Unter diesen Umständen läuft das Programm allerdings anschließend fehlerfrei durch
Meine Vermutung geht in die Richtung, dass der Compiler (BDS2006 + Update 2) hier Probleme hat Speicher für den String zu allokieren... Was meint ihr dazu? Bin momentan absolut ratlos
Danke schon mal für eure Antworten