dynamisch erzeugte Objekte wieder freigeben
-
Hallo Leute,
Ich habe in einem anderen Forum eine Frage gestellt. In dem Forum konnte mir bisher jedoch keiner mein Problem lösen!
Ich bitte euch daher einmal in den Beitrag in dem anderen Forum hineinzuschauen und dann hier in diesem oder in dem anderen Forum eine Antwort zu schreiben.
Hier der Link zu meinem Beitrag:
http://www.bytesandmore.de/rad/ib/index.php?act=ST&f=3&t=325&s=5a64afc8972bf931e31a78b2d9d1eceeVielen Dank,
Euer Entertainer
-
Ich vermute du greifst irgendwo auf ein arrayfeld zu das es nicht gibt, also
TEdit* edits[100]; for(int i = 0; i <=100;i++) { edits[i] = new TEdit(Form1); }
und zack hast du beim Programmende (meistens, eigentlich ist es undefiniert) einen Fehler...
Vergrösser mal testweise das Array wo du reinspeicherst, ansonsten wirst du nicht umhin kommen entweder damit zu leben oder einen lauffähigen Code zu posten bei dem dasselbe Problem auftritt.
Ach und eigentlich musst du Objekte die einen Owner haben (also das Form1 in den Klammern) NICHT wieder löschen weil das automatisch geschieht im Konstruktor vom Owner.
Wenn du zur Laufzeit immer neue erzeugst ist das natürlich wieder was andres weil dann irgendwann dein Speicher voll ist, aber wenn du im OnCreate irgendeiner Form ein paar dynamische TEdits oder so erzeugst ist das egal.
-
Siehe FAQ unter "Komponenten" ('Dynamische Arrays' bzw. 'zur Laufzeit erstellen ...').
-
Hallo Leute,
Leider funktioniert es wieder nicht.
Aber in weiteren Tests habe ich herausgefunden, dass es eventuell hieran liegen könnte:
TEdit **Edit; int Anzahl; Edit = new TEdit *[Anzahl];
TEdit **Edit ist jedoch unbedingt notwendig, da die Anzahl der
Edit- Felder im Voraus nicht bekannt ist. Mit TEdit *Edit wäre dies nicht möglich!Kennt jemand vielleicht eine andere Methode, um beliebig viele Felder zu erstellen?
Oder habe ich in meinem Code Fheler gemacht?Ich bitte euch alle um Hilfe.
Vielen Dank,
Euer Entertainerdu brauchst nicht vermuten dreaddy das war sein ursprünglicher beitrag ...
und alleine die 4 zeilen bestätigen das er sein unterfangen lieber nochmal verschieben sollte und nochma bissl lesen sollte...