Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
ВнизКак правильно удалить созданный объект. Найти похожие ветки
← →
Nikfel © (2007-06-29 15:31) [0]Чем отличаются Free от Destroy. Мне надо создать массив компонентов, затем удалить последний элемент массива, но с возможностью снова создать этот элемент. Что лудше использовать Free или Destroy для этой задачи. Заранее спасибо.
← →
Плохиш © (2007-06-29 15:35) [1]Не царское это дело справку читать? Только не понятно нафик царю программировать?
← →
exactly (2007-06-29 15:36) [2]лучше опиши зачем всё это
цель какая
← →
Anatoly Podgoretsky © (2007-06-29 15:37) [3]> Nikfel (29.06.2007 15:31:00) [0]
Description
Do not call Destroy directly. Instead, use the Free method, which checks for a nil reference before calling Destroy.
← →
exactly (2007-06-29 15:39) [4]в Delphi просто возможен галяк - объекта реально нету, а ссылка на него есть, на убитого его
в .net коде такой ахинеи быть не может
← →
Сергей М. © (2007-06-29 15:40) [5]
> с возможностью снова создать этот элемент
Выбор между Free и Destroy при любом раскладе никак не влияет на наличие или отсутствие такой возможности.
← →
Nikfel © (2007-06-29 16:36) [6]Я собираюсь написать пародию на программу ChoiceEditor, но с большими возможностями и с новым оформлением. Я такую программу уже написал только осталось переделать под kol и продумать оформление.
← →
Сергей М. © (2007-06-29 16:42) [7]
> Nikfel © (29.06.07 16:36) [6]
> собираюсь написать
Флаг тебе в руки, барабан, а также якорь и пионерскую дудку в известные места)
Ты лучше скажи, как это связано с сабжем ?
← →
Vlad Oshin © (2007-06-29 16:45) [8]мне кажется что free - освобождает память просто. Ну, тупо. Берет и освобождает.
а Destroy - он что-то делает по описанным правилам, методам..
типа, как:
можно удалить базу через запрос
а можно стереть каталог
имя менять не буду - накосячил так накосячил :)
← →
Однокамушкин (2007-06-29 16:48) [9]
> Vlad Oshin © (29.06.07 16:45) [8]
> мне кажется что free - освобождает память просто. Ну, тупо.
> Берет и освобождает.
> а Destroy - он что-то делает по описанным правилам, методам.
> .
Если что-то кажется насчёт работы метода Free, есть три варианта: а) перекреститься б) почитать справку в) посмотреть исходники Free... лично я рекомендую б) и в), а то иногда такая ерунда кажется...
← →
Anatoly Podgoretsky © (2007-06-29 16:53) [10]> Vlad Oshin (29.06.2007 16:45:08) [8]
Перекрестись и в справку, выписка выше
← →
Vlad Oshin © (2007-06-29 16:54) [11]да, кажется, бывает :)
просто, интуитивно написал, как понимаю.
пообщаться м/б захотелось.. :)
← →
Германн © (2007-06-29 16:57) [12]
> пообщаться м/б захотелось.. :)
>
Сколько взял на грудь?
:)
← →
Anatoly Podgoretsky © (2007-06-29 16:58) [13]> Германн (29.06.2007 16:57:12) [12]
А может он курил - грибы?
← →
Vlad Oshin © (2007-06-29 17:00) [14]o destroy an object, however, you should call the Free method (also inherited from TObject), because Free checks for a nil reference before calling Destroy. For example,
ну, понятно, че ругаться то :)
да немного, вообщем то принял
ну, ладно, а то ща удалят ветку
пойду на соотв. форумы :)
← →
Ega23 © (2007-06-29 17:50) [15]
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
Всё.
← →
palva © (2007-06-29 17:54) [16]Еще есть FreeAndNil
← →
trubin © (2007-06-29 21:56) [17]
> Мне надо создать массив компонентов
Возможно не стоит мучаться, а использовать TComponentList
← →
DrPass © (2007-06-30 10:58) [18]
> Еще есть FreeAndNil
Я знаю карате, дзюдо, капоэйру и еще много-много других страшных слов
← →
SKIPtr (2007-06-30 17:09) [19]
> Ega23 © (29.06.07 17:50) [15]
>
>
Хоть иногда бывают ответы на вопросы
← →
engine © (2007-06-30 17:23) [20]> [19] SKIPtr (30.06.07 17:09)
а самому лень посмотреть?
system.pas
line 8390 - это для D7.
Вечно всех носом тыкать надо.
← →
SKIPtr (2007-06-30 19:47) [21]
> а самому лень посмотреть?
> system.pas
Посмотрел понравилось хотя почти всё не понятно
Если знаешь ответ почему не подсказать или направить на нужный путь
Изучить этот файл лета не хватит я с голоду умру так и не успею не чего написать
На простой вопрос не могут дать простой ответ
даже в разделе начинающим
← →
TUser © (2007-07-01 08:19) [22]> удалить последний элемент массива, но с возможностью снова создать этот элемент
Лучше ничего не использовать, а у объектов сделать флажек "TypaDestroyed: boolean". Тогда можно сэкономить на создании/уничтожении объектов и выиграть в скорости, правда, проиграв в памяти.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c