Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Nach free ist Komponente noch zu sehen


DJ_Apfel - Mi 11.12.02 11:30
Titel: Nach free ist Komponente noch zu sehen
Hallo, ich wieder mal:

Im Thread http://www.auq.de/viewtopic.php?p=23859&sid=fee91f235d2a8b827bdc1b071c873638#23859
hab ich mit Objekt.Free erfolgreich den Speicher wieder freigegeben und kann z.B. einene Komponente des gleien Namens wieder erstellen.

Das Problem ist nun, dass die alten Komponenten immernoch auf dem Formular rumlungern, die sollten doch weg sein!!!


UGrohne - Mi 11.12.02 11:37

Schonmal mit dem Neuzeichnen des Formulars probiert? Wenn Du das Formular verkleinerst, so dass die KOmpo außerhalb liegt, ist sie dann verschwunden? Wenn ja, dann liegst daran.

Gruß


LCS - Mi 11.12.02 11:45

Hm, das wäre allerdings ein merkwürdiges Verhalten das ich so in der Form noch nicht beobachtet habe. :? Wenn ich ne Komponente freigebe ist die immer weg, auch ohne das Formular (oder halt den Parent) neu zu zeichen. :nixweiss: Oder gibts da Sonderfälle wo das auftritt?

Gruss Lothar


UGrohne - Mi 11.12.02 11:49

Keine Ahnung, höchstens wenn man rein API programmiert *g*
Aber ich denke, es ist mal ein Ansatz....


Ghost - Mo 16.12.02 18:31

Lässt du das in einer Routine laufen?
Wenn ja, probier mal nach dem free:

Quelltext
1:
Application.Processmessages;                    


smiegel - Mo 16.12.02 19:41

Hallo, wenn es sich um eine visuelle Komponente handelt, ist nicht sichergestellt, das mit Free, das Object vom Bildschirm verschwindet. Ggf. würde ich die Eigenschaft Visible auf False setzen und dann Free aufrufen. Free alleine bedeutet ja nur, dass der allozierte Speicher - den das Objekt belegt - wieder freigegeben wird.


DJ_Apfel - Di 17.12.02 11:45

Das ist richtig hätte ich auch so gemacht aber bei mir schließe ich das Formular und gebe die Komponenten wieder frei. Das das Form geschlossen wird sind die Objekte eh nicht mehr sichtbar :).