Nach Hause

Forum: "Haupt";
Durchsuchen Sie die gesamte Website: delphimaster.net;
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];



Nach unten

Objekt löschen


Serge (2001-12-18 19:18) [0]

Objekt löschen (do free)
Wie prüfe ich, ob ein Objekt gelöscht wird? Ich prüfe auf Null
dass der Zeiger definiert ist). Wie zu sein ???



Anatoly Podgoretsky (2001-12-18 19:29) [1]

Nun, gib es nach der Entfernung null.
Aber warum, angesichts der Wiederverwendung, ist es besser, so zu schreiben, dass es nicht nötig ist.



null (2001-12-18 19:36) [2]

FreeAndNil (Objekt);



Serge (2001-12-18 19:41) [3]

Nun, es ist nicht wirklich "Wiederverwendung".
Das Problem ist wie folgt:
Ich mache einen Reportdesigner. Der Benutzer kann dem Bericht verschiedene Elemente hinzufügen (Bänder, Labore usw.). Was auf dem Bericht liegt, ist in tlist geschrieben
Natürlich können Sie Komponenten entfernen und hinzufügen.
Das Problem kam, als die Bande entfernt wurde. Ich mache es kostenlos - es wird gelöscht und löscht seine untergeordneten Objekte.
Ich muss sie von lista entfernen. Daher stellte sich die Frage. Wenn ich eine Bande löschen wollte, wollte ich überprüfen, welche Objekte damit gelöscht wurden, und sie aus dieser Liste entfernen.
In anderen Fällen habe ich Null vergeben.
Sollte es einen Weg geben ???



Yuri Zotov (2001-12-18 19:43) [4]

Und warum noch nachschauen? Wenn Free aufgerufen wurde und es keine Ausnahmen gab, wird das Objekt gelöscht und es sind keine Prüfungen mehr erforderlich.

Es scheint, dass Anatoly Podgoretsky recht hat - die Codelogik ist nicht optimal aufgebaut. Ich empfehle Ihnen, darauf zu achten, da solche Dinge sehr oft zu versteckten und schwer zu findenden Fehlern führen.




Serge (2001-12-18 19:48) [5]

Okay!! Danke allen!
Selbst wenn Yu.Zotov den Weg nicht kennt, werde ich versuchen, das Problem auf andere Weise zu lösen, und es scheint ein längerer Weg zu sein: (((
Nochmals vielen Dank für Ihre Aufmerksamkeit.



Yuri Zotov (2001-12-18 19:52) [6]

Wow, der Unterschied in 2 Sekunden ...

Nun ist die Aufgabe klar. Eine Möglichkeit, dies zu tun. Züchten Sie Ihren Manager von TComponent und fügen Sie Ihre TList wie ein Feld ein. Der Unterschied ist, dass dieser TComponent beim Einfügen einer Komponente in einen Bericht seine FreeNotification-Methode aufrufen kann und daher automatisch alle Benachrichtigungen über das Löschen erhält. Es bleibt nur noch die Methode Notification zu ersetzen, und schon werden die Links in der TList gelöscht.



Serge (2001-12-18 19:57) [7]

> Yuri Zotov
Clever! Okay, ich werde es morgen versuchen! Danke!



Anatoly Podgoretsky (2001-12-18 20:25) [8]

Im Prinzip ist es egal, wie es geht. selbst aus der Liste. In diesem Fall geht das Problem an die Wurzel.





Forum: "Haupt";
Durchsuchen Sie die gesamte Website: delphimaster.net;
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];



nach oben

Nach Hause

Top.Mail.Ru Yandeks.Metrika













Speicher: 0.77 MB
Zeit: 0.051 c
1-22128
vinni2000
2001-12-18 17:17
2002.01.08
RichEdit !!!!!!!!!!!!!!!!!


14-22381
Felix
2001-11-08 20:41
2002.01.08
Was war es?


6-22271
Sieger
2001-10-04 20:15
2002.01.08
при конекте не появлялось удаленное соединение????


6-22302
Igor
2001-10-11 20:10
2002.01.08
Sockets in Delphi


14-22335
Sergey1
2001-11-05 21:44
2002.01.08
Zeicheneingabe





Afrikanisch albanisch Arabic Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch griechisch haitian Creole hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch rumänisch Russisch serbisch Slovak Slowenisch Spanisch swahili Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch