Autor Beitrag
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 18:07 
Hi Leute!

Hab eine Anwendung mit ca. 120 Formularen. Nun soll die so umgeschrieben werden, dass die Objekte der Forms nur instanziiert werden, wenn Sie tatsächlich gebraucht werden. ABER: Wenn ich das Objekt nach der Verwendung freigebe mit

ausblenden Quelltext
1:
Try FStammdatenAllgemein.Destroy; except end;					


ODER MIT

ausblenden Quelltext
1:
Try FStammdatenAllgemein.Free; except end;					


ODER MIT

ausblenden Quelltext
1:
Try FStammdatenAllgemein.Release; except end;					


Dann bringt mir die Abfrage mit Assigned immer noch, dass das Objekt nicht aufgelöst wurde. Jemand ne Idee? Bin am Ende mit meinem Altgriechisch.

Das Form wird übrigens so erzeugt:

ausblenden Quelltext
1:
Application.CreateForm(TFStammdatenAllgemein, FStammdatenAllgemein);					


Viele Grüße,

Matthias[/code]

_________________
Ha! Es compiliert! Wir können ausliefern!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 18:12 
Du musst den Zeiger noch auf nil setzten. Das Objekt wird im Speicher zwar zerstört, der Zeiger zeigt aber noch auf die Adresse im Speicher. Nimm die Methode FreeAndNil dazu.

Und die Methode Destroy sollte man nie aufrufen. Sie ist nur für interne Zwecke bestimmt. Siehe dazu die Hilfe:
Zitat:

Do not call Destroy directly in an application. Instead, call Free. Free verifies that the TXxxx object is not nil and only then calls Destroy.
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 18:14 
Wenn du sicher gehen kannst dass das Objekt nicht schon vorher zerstört wurde (z.B. lokale Objekte) kann man ruhig Destroy benutzen, aber free ist auf jedenfall vorzuziehen, wie Luckie gesagt hat.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 18:20 
Da die Delphi-Hilfe explizit davon abrät Destroy direkt aufzurufen würde ich diesen Rat auch befolgen. Grund wurde angegeben und die Borländer sollten es ja wissen.
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Mo 19.01.04 18:46 
Es wurde dabei einmal auf den Geschwindigkeitsunterschied hingewiesen, aber die paar mov's, ein test, ein call und ein ret sollten wirklich nur in Extremfällen einen spürbaren Unterschied machen. Von daher halte ich es genauso wie Luckie - prinzipiell immer Free verwenden!

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
neojones Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 18:51 
Ihr seid die ALLERBESTEN!

Danke! So gehts! Mit NilAndFree!

Viele Grüße,

Matthias

P.S.: Wahrscheinlich hat mich die hübsche neue Mitarbeiterin so verwirrt *g*

_________________
Ha! Es compiliert! Wir können ausliefern!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 18:54 
neojones hat folgendes geschrieben:
P.S.: Wahrscheinlich hat mich die hübsche neue Mitarbeiterin so verwirrt *g*

Hehe. Versuch du mal zu programmieren, wenn dich deine Freundin im Nacken krault. Ich sag es dir gleich, es geht nicht. :mrgreen: