Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Probleme beim freigeben von Komponenten

  Alt 22. Mär 2010, 14:25
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
Heiko
  Mit Zitat antworten Zitat