Ich schlage folgende Änderungen vor:
Delphi-Quellcode:
procedure TdamScaDatabase.DataModuleDestroy(Sender: TObject);
begin
//SLTaetigkeiten.Free;
//SLTaetigkeiten := nil;
FreeAndNil(SLTaetigkeiten);
// <==== Objekt ggf. freigeben und Zeiger auf nil setzen
end;
if not Query.Eof
then
begin
Query.First;
while not Query.Eof
do
begin
if not Assigned(SLTaetigkeiten)
then
asm
INT 3
end
else
SLTaetigkeiten.Add(
Query.FieldByName('
KOSTSTELLE').AsString);
Query.Next;
end;
end;
Wenn dein Programm im integrierte Debugger läuft, dann hält der Debugger mit INT 3 an der Stelle an,
an der du auf die freigegebene Stringliste zugreifen möchtest.
So kannst du dann z.B. den Aufrufstack dir anzeigen und herausfinden warum der Zugriff erfolgt,
obwohl doch gar nicht erlaubt.