![]() |
Spinnt Delphi oder ich
Teil der FormDestroy meines Forms
Delphi-Quellcode:
arrLabels ist ein dynamisches Array vom Typ TLabel
for i:= 0 to Labelcount - 1 do begin
arrLabels[i].Free; end; arrLabels := nil; Heute Vormittag -- alles normal, keine Exceptions Vor kurzem -- ca. beim 27. Free gibts eine EInvalidPointer Daraufhin habe ich die Free-Zeile auskommentiert. Jetzt bekomme ich keinen Fehler. Neustart des Systems, ich hab natürlich gespeichert EInvalidPointer beim Beenden des Programmes. Jetzt hab ich die Kommentarzeichen wieder weggelöscht und ich bekomme keine Exception mehr. Irgendwie bin ich etwas verwirrt, steckt da ein System dahinter? Ist es möglich, dass ich irgendwo einen ganz anderen Fehler habe, der das auslöst? mfg Daniel |
Moin Daniel,
wie erzeugst Du denn die Label? Wenn Du beim Create als Owner eine übergeordnete Komponente angegeben hast (z.B. das Formular), und nicht nil, werden die Label automatisch zerstört. |
Klappt das hier?
Delphi-Quellcode:
for i := (Labelcount - 1) downto 0 do
begin arrLabels[i].Free; end; arrLabels := nil; |
Also muss ich Objekte, die ich so
Delphi-Quellcode:
erzeuge gar nicht entsorgen?
arrLabel[i] := TLabel.Create( self );
Auch fein. mfg Daniel |
Nein im Grunde brauchst du die nicht mehr freigeben.
Als Owner gibts du ja 'self' an, 'self' meint hier das Formular in dem du die Instanzen erzeugst :mrgreen: Wird das Formular zerstört (spätestens beim Beenden des Programms) werden auch alle Objekte die dies Formular als Owner haben mit aus dem Speicher gehauen :dancer2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz