Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#1

TComponentList: Nur zur Laufzeit erstelle Kompos löschen

  Alt 10. Aug 2008, 09:54
Hallo,

ich hab eine Komponentenliste vom Typ TComponentList in der ich zur Laufzeit
erzeugte Komponenten als auch schon zur Designzeit erzeugte Komponenten
eintrage.

Am Ende des Programmes bei OnDestroy der Form will ich alle zur Laufzeit erstellten
Komponenten löschen.

Dafür hab ich folgenden Code:
Delphi-Quellcode:
procedure TMaskForm.FormDestroy(Sender: TObject);
var
  i: Integer;
  Dummy_Kompo: TComponent;

begin
  for i := Pred(Komponentenliste.Count) downto 0 do
    begin
      //Komponente auslesen
      Dummy_Kompo := Komponentenliste.Items[i];

      If Assigned(Dummy_Kompo) then
        FreeAndNil(Dummy_Kompo);
    end;

  FreeAndNil(Komponentenliste);
end;
Mit dem Assigned will ich alle Komponenten die beim Design erstellt wurden,
aussieben.
Aber leider bekomm ich immer eine AccessViolation - ich weiss nur nicht warum?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat