Ich muss doch getraeumt haben! Der Fehler ist ja offensichtlich und wurde auch weiter oben glaub ich schon mal angesprochen. Du wandelst mit WideString(...) ein AnsiString in ein WideString um, beachtest aber nicht, dass diese Umwandlung nur temporaer geschieht. Du speicherst also einen Pointer auf einen Speicherbereich, der nach Ausfuehrung der Codezeile wieder freigegeben wird. Wahrscheinlich arbeitet der Optimizer in Schleifen etwas anders als bei deiner letzten Befehlsfolge, was die Nutzung von Speicher angeht - das erklaert die unterschiedlichen Ergebnisse. Dass es nicht sofort zu einer Schutzverletzung kommt, kommt wahrscheinlich daher, dass die Strings recht kurz sind und die Win-Speicherverwaltung nicht Byte-genau arbeitet. Die Loesung waere demnach eine der folgenden:
1. mache das Original-String-Array als array of WideString ODER:
2. erstelle ein zusaetzliches Array vom Typ WideString und mach darauf zuerst eine Zuweisung
und verzichte auf das WideString(...) in der Anweisung. Das sollte gehen!
Ein guter Programmierer ist derjenige, der sich noch in die Lage eines Anwenders versetzen kann!
Stabilität ist wichtiger als Entwicklungsdauer.