Hallo,
irgendwie schmeißt du hier mehrere Sachen zusammen.
RzStatusPane[i] := TRzStatusPane.Create(self);
Self wird hier der Owner des neuen Panes.
Damit steht das in desses Components-Liste und wird
beim beenden des
Self mit gelöscht.
Delphi-Quellcode:
for i := 1 to 40 do
begin
if rzpanel73.FindComponent('rzstatuspane'+IntToStr(i)) as Trzstatuspane <> nil then
begin
rzstatuspane[i].Free;
rzstatuspane[i] := nil;
end;
end;
Und wieder ein Fall für
as
Wozu soll das an dieser Stelle gut sein ?
Warum nimmst du keine lokale Variable ?
Delphi-Quellcode:
rzstatuspane[i].Free;
rzstatuspane[i] := nil;
OK, dein Statuspane ist gelöscht, aber es steht immer noch in der Components-Liste von
Self drin.
Ich würde hier das Löschen gleich ganz übernehmen (also auch im FormDestroy).
Also mit NIL erzeugen
RzStatusPane[i] := TRzStatusPane.Create(NIL);
Update: Merde, zu langsam
Heiko