Autor Beitrag
DJ_Apfel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mi 11.12.02 00:56 
hi,

ich hab dynamische Textfelder erstellt nun will ich sie ganz einfach mit
textfeld[i].free wieder "löschen" und somit auch den Speicher wieder freigeben.
Leider passiert da nix :(.

ausblenden Quelltext
1:
2:
3:
Wichtig: ich habe ein 

textfeld: array [0..10] of TEdit
[/code]

_________________
Nur tote Fische schwimmen mit dem Strom!

IRC -> Server: east.gamesnet.com Port: 6667
Raum: #clan-babies
DJ_Apfel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mi 11.12.02 11:27 
Ok das Probelm hab ich folgendermaßen gelöst:

Schon bei der Erstellung des Objektes lag der Fehler:

ausblenden Quelltext
1:
2:
3:
4:
statt self
textfeld := TEdit.Create(self);
ein nil
textfeld := TEdit.Create(nil);


das Problem ist nur ich weiß nciht warum das so sein muss :P Villeich kann ja mal einer der Profs noch etwas sazu schreiben.

_________________
Nur tote Fische schwimmen mit dem Strom!

IRC -> Server: east.gamesnet.com Port: 6667
Raum: #clan-babies
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mi 11.12.02 11:37 
Hi
mit
ausblenden Quelltext
1:
Textfeld := TEdit.Create(nil);					

hast du einfach nochmal ein Editfeld erzeugt (allerdings ohne Owner) und der Objektvariablen zugewiesen.
----
Nachtrag: Ich hab dein Posting nicht richtig gelesen. Das hier ist also Quatsch.
-----
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  Textfeld : TEdit; //definition
  ...
begin
  Textfeld := TEdit.Create(self); //Erzeugen mit Eigentümer
  ...
  Textfeld.Free;  //Freigeben
  ...


Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...


Zuletzt bearbeitet von LCS am Mi 11.12.02 11:56, insgesamt 1-mal bearbeitet
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mi 11.12.02 11:39 
Das mit dem Self war schon richtig. Auf diese Weise wird die Komponente in die Komponentenliste des Formulars aufgenommen. Wenn du das Programm dann beendest, dann gibt das Formular auch die Komponente von selbst frei. Sonst mußt du es selbst machen.

Ein Tip zum Free:

X.Free;
X := nil;

Kann nicht schaden und du entfernst die Adresse.