Kann es sein das Du irgendwo Deinen Stack überschreibst?
Stell doch mal Deine lokalen Variablen um also anstatt:
Delphi-Quellcode:
var
SL, SL_Waren, SL_SUB, SL_Waren2: TStringList;
zu so etwas:
Delphi-Quellcode:
var
SL: TStringList;
SL_Waren: TStringList;
SL_SUB: TStringList;
SL_Waren2: TStringList;
Dann kannst Du auch noch die Reihenfolge ändern.
Stelle mal Dein SL_SUB an den Anfang
Delphi-Quellcode:
var
SL_SUB: TStringList;
SL: TStringList;
SL_Waren: TStringList;
SL_Waren2: TStringList;
was ist dann?
sind alle lokalen Variablen sinnvoll initialisiert?
z.B:
Delphi-Quellcode:
begin
// nur als Beispiel
SL := nil;
SL_Waren := nil;
SL_SUB := nil;
SL_Waren2 := nil;