Nabend
DP'ler,
ich bin vorhin auf ein seltsames Problem gestoßen, für dass ich weder eine Erklärung noch im entferntesten einen Lösungsansatz habe.
Kurze Beschreibung:
Ich arbeite an einer
Unit, BildDateien nach
OpenGL zu laden (ich weiß, gibts schon, benutze aber eine eigene FileSystem-Klasse auf die das ganze aufbaut, ist auch nicht der Punkt.)
Jedes Bild hat nun eine Prozedur Reload, die eben dafür sorgt, dass Bilder sich neu Laden bzw wenn sie durch eine Funktion erzeugt werden, sich neu erzeugen. Nun hab ich da stehen:
Delphi-Quellcode:
//always regenerate functional images
if @generatorFunc <> nil then
begin
Log.DPrintf('regenerating ' + imgName + '.' + #13#10);
generatorFunc(self);
Exit;
end;
Wobei Log.DPrintf nichts anderes macht, als den gegebenen String in einen Log zu schreiben und auf einer sichtbaren Konsole darzustellen. Soweit so gut.
Doch anstatt dass ich im Log schön die einzelnen generierten Bilder untereinander stehen habe a la:
regenerating _default.
regenerating _white.
regenerating _black.
etc bekomm ich das folgende:
regenerating _default.
rege
rege
rege
regenerating _flat.
rege
rege
rege
rege
rege
rege
rege
Die Strings werden also abgeschnitten. Ich habs mir im Debugger mal angeschaut, da wurde anscheinend irgendwie der Konstante String 'regenerating ' überschrieben durch 'rege'#0#0#0(Unlesbares Zeichen)#0'ing _white'. Und es sind immer diese 5 Chars, die überschrieben werden, genau mit denselben Zeichen.
Nun zur eigentlichen Frage: Wie kann das Sein, wo kann das Herkommen?
Dominik C.
Orientierungslos sieht man mehr vom Leben.