Mortal-Shadow - Sa 13.09.08 15:32
Titel: (Eventuell) mehrmaliges freigeben
Hi,
In meinem Programm gibt es mehrere Forms.
In einer macht man Eingaben, und in der zweiten werden dann eine Anzahl Bilder abhängig von den Eingaben erschaffen.
Ca. so:
Dabei ist Bild ein dynamischer Array von TImage.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| setlength(bild, Eingabe); For i := 0 to (Eingabe -1) do begin bild[i] := TImage.Create(nil); bild[i].parent := self; |
Wenn man nun die Bilderform schliest, wird die Eingabeform wieder gezeigt und man kann neue Angaben machen.
Die Frage ist nur - was mache ich mit den bisherigen Bildern?
Ich habe es bisher so versucht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction); var count1: integer; begin Form1.show; For count1 := (Eingabe - 1) downto 0 do bild[count1].free; end; |
Allerdings bekomme ich bei mehrmaligem Ausführen die 'Accessviolation' - Fehlermeldung.
Die Bilder alle im Speicher liegen lassen bis Programmende will ich auch nicht, zumal man sie beim nächsten Aufruf der Bilderform noch sieht.
Wie könnte ich dieses Problem lösen?