casa
Top.Mail.Ru Yandeks.Metrika
Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

giù

Cancellare un oggetto Trova rami simili


Серж   (2001-12-18 19:18) [0]

Elimina oggetto (fai libero)
Come controllare che l'oggetto sia cancellato (controllo per nil - dice
che il puntatore è definito). Come essere ???



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

Bene, assegnalo a zero dopo la cancellazione.
Ma perché farlo, sul fronte del riutilizzo, è meglio scrivere così che non ce n'è bisogno.



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

FreeAndNil (Object);



Серж   (2001-12-18 19:41) [3]

Beh, non è davvero "riuso".
Il problema è il seguente:
Faccio un reportista. L'utente può aggiungere al report diversi elementi (bande, laboratori, ecc.). Ciò che si trova nel rapporto è scritto in tlist
Ovviamente, puoi rimuovere e aggiungere componenti.
Il problema è venuto quando la banda è stata rimossa. Rendo libero: viene cancellato ed elimina i suoi oggetti figli.
Devo rimuoverli dalla lista. Pertanto, la domanda è sorto. Quando volevo eliminare una gang, volevo controllare quali oggetti sono stati cancellati e rimuoverli da questa lista.
E in altri casi, ho assegnato zero.
Dovrebbe esserci un modo ???



Юрий Зотов   (2001-12-18 19:43) [4]

E perché anche controllare? Se è stato chiamato Free e non c'erano eccezioni, l'oggetto viene eliminato e non sono più necessari controlli.

Sembra che Anatoly Podgoretsky abbia ragione: la logica del codice non è costruita nel modo migliore. Ti consiglio di prestare attenzione a questo, perché molto spesso queste cose causano errori nascosti e difficili da trovare.



Серж   (2001-12-18 19:48) [5]

Va bene !! Grazie a tutti!
Anche se Yu.Zotov non conosce la strada, allora proverò a risolvere il problema con un altro e, a quanto pare, un modo più lungo: ((
Grazie ancora per l'attenzione.



Юрий Зотов   (2001-12-18 19:52) [6]

Wow, la differenza tra 2 secondi ...

Ora il compito è chiaro. Un modo per farlo. Alza il tuo manager da TComponent e incolla il tuo TList in esso, come un campo. La differenza è che quando si inserisce un componente in un report, questo TComponent può chiamare il suo metodo FreeNotification e quindi riceverà automaticamente tutte le notifiche sulla cancellazione. Resta solo da sostituire il suo metodo di notifica, e in esso già cancellare i collegamenti nel TList.



Серж   (2001-12-18 19:57) [7]

> Yuri Zotov
Sly! Ok, ci proverò domani! Grazie!



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

In linea di principio, non importa come farlo, è importante che qualsiasi oggetto venga aggiunto e rimosso. se stesso dalla lista. In questo caso, il problema andrà alla radice.



Pagine: 1 tutto il ramo

Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

al piano di sopra









Memoria: 0.83 MB
Ora: 0.038 c
7-22427
KLM
2001-09-20 06:34
2002.01.08
Protezione dalla copia


4-22458
Ajax
2001-10-31 17:50
2002.01.08
TColor e RGB


3-21986
Sognatore
2001-12-06 15:43
2002.01.08
Campo dati non consentito su DataSet aperto


3-21929
@ Andrew
2001-12-04 11:38
2002.01.08
CIAO TUTTI! Faccio un diario Dove è finito il compito ....


4-22472
Eugene
2001-10-27 17:03
2002.01.08
Come rendere il tuo piccolo server proxy?





afrikaans albanese Arabic armeno Azero basco bielorusso Bulgarian catalano Cinese (semplificato) Cinese (tradizionale) croato Ceco danese Dutch Inglese estone filippina Finnish Francese
galiziano georgiano Tedesco greco Creolo haitiano ebraico hindi ungherese islandese Indonesian irlandese Italiano Giapponese Korean lettone lituano macedone Malay maltese Norwegian
persiano polacco Portoghese rumeno Russian serbo Slovak sloveno Spagnolo swahili Swedish Thai turco ucraino Urdu vietnamita gallese yiddish bengalese bosniaco
Cebuano esperanto Gujarati Hausa Hmong Igbo giavanese kannada khmer lao latino maori marathi mongolo nepali punjabi somalo tamil telugu Yoruba
zulù
Английский Francese tedesco italiano portoghese russo spagnolo