|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.04.2008, 10:51 | #1 |
Пользователь
Регистрация: 29.08.2007
Сообщений: 51
|
Создание/уничтожение объектов
Товарищи специалисты, подскажите пожалуйста. Как мне отслеживать какие объекты созданные динамически я не удаляю. Может существует какая нибудь прога позволяющая этоотслеживать
|
11.04.2008, 10:56 | #2 |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
Поиск в гугле по слову MemProof
|
11.04.2008, 19:14 | #3 |
Программер
Регистрация: 11.04.2008
Сообщений: 6
|
просто используй код после того, как использованная кнопка тебе не нужна...
ну что-то вроде этого... Button1.Free; или Button1.Destroy; ну вот)
Программеры ЛУЧШЕ ВСЕХ!!
|
11.04.2008, 19:52 | #4 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Кидаете на форму ListBox и при создании объекта заносите туда новой строкой имя созданного объекта, а при уничтожении его - ищете соответствующую строку и удаляете ее. При выходе их программы проверяете количество строк в ListBox-е и, если оно больше нуля, выводите либо предупреждение, либо сам список ListBox. Я так понимаю, вам это нужно для проверки своего кода на завершенность и с целью предотвращения утечки ресурсов? |
|
11.04.2008, 23:11 | #5 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
А какие объекты обязательно, и какие необязательно удалять.
Глобальные понятно не обязательно, а вот функции, например такая Код:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
11.04.2008, 23:45 | #6 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
стараюсь придерживаться простого правила - объекты удаляются там-же, где и создаются:
Код:
Распределение памяти и возврат функциями указателей лучше не допускать. В этом случае, особенно, если функция будет использоваться неоднократно, непонятно создает она этот объект или возвращает ссылку на ранее созданный. И нужно ли его освободить после использования. Безопасней создать отдельный класс. (В терминах шаблонов - фабрику объектов). У этого класса будет метод doSmth, который вернет TBitMap, но владельцем останется фабрика и он будет уничтожен при уничтожении фабрики. Т.е. принцип останется: Код:
Код:
|
12.04.2008, 23:52 | #7 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
Из-за этих сомнений я обычно и использую процедуры с передачей в них объекта "со стороны".
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
13.04.2008, 09:01 | #8 | ||
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Если так:
Код:
Цитата:
Компилятор реализует вызов B := doSmth как передачу var-параметра - doSmth(var B). Это можно увидеть на примере вот-такого кода. Как думаете, что появится на форме ?: Код:
Цитата:
Последний раз редактировалось alexBlack; 13.04.2008 в 09:17. |
||
13.04.2008, 09:33 | #9 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
з.ы. Пошел заполнять пробелы в матчасти =)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 13.04.2008 в 09:39. |
|
13.04.2008, 09:46 | #10 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Этот код эквивалентен такому вызову:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Автоматическое уничтожение объекта | mutabor | Общие вопросы Delphi | 6 | 25.06.2008 22:25 |
Уничтожение окна | Kashp | Win Api | 20 | 07.09.2007 14:15 |
Динамическое создание объектов | LepihinMS | Общие вопросы Delphi | 18 | 05.07.2007 23:31 |
Создание новых объектов | Washington | Общие вопросы Delphi | 1 | 10.03.2007 21:57 |