Guten Tag,
Ich verwende das erste mal eine TObjectList. Leider bekomme ich nun beim close; des Forms eine
exception:
EInvalidPointer 'Ungültige zeigeroperation'.
Delphi-Quellcode:
// unit System;
procedure TObject.FreeInstance;
begin
CleanupInstance;
_FreeMem(Pointer(Self));
// <- Hier wird die exception ausgelöst.
end;
Im Anhang befindet sich der Source.
close; <- Zeile 292
Programmbeschreibung:
Anhand einer Mitarbeiter Tabelle erstelle ich Frames. Für jeden Mitarbeiter erzeuge ich ein Frame, dies füge ich einer TObjectList(PersonList) hinzu. Der Owner bei der TObjectList ist auf true.
In der Mitarbeiter Tabelle habe ich Aktive und nicht Aktive Mitarbeiter. Wenn
alle Mitarbeiter auf Aktiv sind kommt
kein Pointer-Fehler.
Sobald ich aber ein Mitarbeiter deaktiviere kommt beim close der Pointer-Fehler. Ob ich das Free am ende mache oder nicht hat keinen einfluss auf die
Exception
Ich habe nun mehrmals die TObjectList mit Breaktpoints beobachtet. Ich habe die korrekte Anzahl an Objekten in dieser Liste. Daher verstehe ich nicht warum ich ein Pointerfehler bekomme.
Mfg Int3g3r