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.83 MB
Zeit: 0.024 c
4-22494
Garryfv
2001-11-05 12:35
2002.01.08
Schwieriger Grafikdruck


14-22360
ENG
2001-11-07 19:16
2002.01.08
Internet Explorer


1-22012
Socol
2001-12-15 16:00
2002.01.08
Nikolay


1-22138
Serg5
2001-12-20 09:22
2002.01.08
Leute, sag mir, aber wie man Image1 löscht, die Clear-Funktion hat nichts gefunden ...


6-22296
Kolyan
2001-10-11 12:49
2002.01.08
TSocket!





Afrikanisch Albanien Arabisch 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 Slovakisch Slowenisch Spanisch Suaheli 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