Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Objekt löschen Finden Sie ähnliche Zweige


Серж   (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.



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

FreeAndNil (Objekt);



Серж   (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 ???



Юрий Зотов   (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.



Серж   (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.



Юрий Зотов   (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.



Серж   (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.



Seiten: 1 ganze Branche

Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben





Speicher: 0.57 MB
Zeit: 0.024 c
1-22178
Anastasia
2001-12-15 21:38
2002.01.08
Benötigen Sie Informationen?


1-22246
Andrey196
2001-12-16 22:03
2002.01.08
So erstellen Sie einen Farbcursor im Borland Image Editor


1-22121
stalin
2001-12-18 00:20
2002.01.08
Neues Problem: + (


3-21965
Serge
2001-12-05 06:13
2002.01.08
FoxPro-Indizierung


1-22013
Neugierig
2001-12-17 12:53
2002.01.08
Führen Sie exe aus dem aktuellen Programm aus.





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarisch katalanisch Chinesisch (vereinfacht) Chinesisch (traditionell) kroatisch Tschechisch Dänisch Niederländisch Englisch estnisch Philippinisch Finnisch Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italienisch Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegisch
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Schwedisch 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