Cześć, zrobiłem w swoim programie głupi błąd kod poniżej
type
TFrame_ProductAddEdit = class(TFramePlus)
public
procedure AfterCreation; override;
procedure BeforeDestroy; override;
end;
var
DirList: TList<String>;
procedure TFrame_ProductAddEdit.AfterCreation;
begin
inherited;
DirList := TList<String>.Create;
end;
procedure TFrame_ProductAddEdit.BeforeDestroy;
begin
DirList.Free;
inherited;
end;
Podczas tworzenia 2 obiektów TFrame_ProductAddEdit i przy wyłączaniu programu otrzymywałem błąd "delphi debugger notification" lub czasami EInvalidPointer ciężko mi było namierzyć ten błąd bo delphi w przypadku wyboru polecenia break; nie odwoływało się do kodu gdzie błąd nastąpił - nic nie pokazywał. Pytanie dlaczego nie odnosił się do linii DirList.Free; gdzie DirList 2 raz chciał być zwolniony co dawało błąd?
Co ciekawe TFrame_ProductAddEdit było tworzone na zakładkach TabSheet i podczas zamykania zakładek w czasie działania programu nie pojawiał się żaden błąd a DirList.Free; było wywoływane kilka razy.