![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
![]()
Всем доброй ночи. И так появилось несоколько вопросов. По этому опишу ситуацию как можно полнее.
Пример: Код:
Потом допустим я создам несколько объектов, но процедурой Button1Click уничтожу, не все. Что будет с остальными, нужно их уничтожать? |
![]() |
![]() |
![]() |
#2 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
А где "деструктор" ?
Free не есть деструктор. Ставьте курсор на Free и жмите F1 - там много мудрого по этому поводу... ![]() На эту фразу Цитата:
|
|
![]() |
![]() |
![]() |
#3 | ||
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]() Цитата:
![]() Цитата:
Для начала "destructor Free" действительно нужно заменить на "destructor Destroy". Чтобы удалить ассоциированный элемент ListView, список в любом случае придётся перебирать. Другой вопрос, как это сделать - можно вручную, а можно другом способом, например, сохранить ссылку на созданный элемент ListItem в объекте класса TClient, а при уничтожении объекта вызывать ListItem.Delete; |
||
![]() |
![]() |
![]() |
#4 | ||||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Вот же написано: Цитата:
Цитата:
Цитата:
А вдруг .Data совсем не то содержит что нужно?
I'm learning to live...
|
||||
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Абсолютно не смущает. Че это должно меня смущать?
I'm learning to live...
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]()
Даже объяснять не хочу. Почитайте про поведение метода Free и сделайте логические выводы.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Формально все правильно, но я бы так не делал. Я привык уничтожать через Free, а не через Destroy, потому что Free перед уничтожением проверяет существование объекта. В данном случае этого не произойдет.
И еще как бы я не делал - класс и его объекты для меня вещь в себе, поэтому я бы не использовал никаких прямых вызовов чужих компонентов, таких как ListView1.AddItem(n, self); (который принадлежит форме).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 15.02.2010 в 08:46. |
![]() |
![]() |
![]() |
#9 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Ну почитал. Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]()
Ничего. Твоё право писать код сомнительного качества.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как перетащить элемент ListView в другой ListView? | Paul Hindenburg | Компоненты Delphi | 5 | 26.01.2013 11:35 |
TCoolBar и стыковка к нему компонентов... | chandrasecar | Общие вопросы Delphi | 3 | 26.12.2009 22:40 |
Конструктор двумерного массива и обращение к нему из main() | Lazio | Помощь студентам | 1 | 26.10.2009 17:25 |
COMODO и антивирус к нему | Next | Безопасность, Шифрование | 5 | 30.07.2009 13:16 |
Узнать IP, с которого к нему | Hallo | Работа с сетью в Delphi | 2 | 08.06.2007 08:50 |