Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Fenster steht immer auf assigned?
neojones - Mo 19.01.04 18:07
Titel: Fenster steht immer auf assigned?
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
Quelltext
1:
| Try FStammdatenAllgemein.Destroy; except end; |
ODER MIT
Quelltext
1:
| Try FStammdatenAllgemein.Free; except end; |
ODER MIT
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:
Quelltext
1:
| Application.CreateForm(TFStammdatenAllgemein, FStammdatenAllgemein); |
Viele Grüße,
Matthias[/code]
Delete - 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.
|
Anonymous - 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.
Delete - 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 - 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!
neojones - 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*
Delete - 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:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!