Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Вниз

Динамическое создание форм   Найти похожие ветки 

 
Pat   (2002-10-22 00:48) [0]

Создаю я форму, допустим, form:=TForm.Create(self). Надо ли после ее использования делать form.free, если на событие OnClose написать action:=cafree?
Выписка из хелпа:
caFree The form is closed and all allocated memory for the form is freed.
Неужели все так просто? :-))))

P.S. Гы...ну клинит меня...с кем не бывает :-))


 
Lego   (2002-10-22 04:54) [1]

Хмм... интересно... я такого незнал :)
Ну с кем небывет :) век живи век цчись :)


 
Rouse_   (2002-10-22 05:05) [2]

Если ты в событии OnClose сделаешь action:=cafree то форма и компоненты наследники освободятся (из памяти) не забывай, что экземпляры классов созданные в форме нужно освобождать в ручную

Желаю успехов


 
Bsl   (2002-10-22 07:53) [3]

Вообще для модальных окон пишется следующим образом:

with TForm.Create(Self) do
try
ShowModal;
if ModalResult = ... ;
finally
Free;
end;


а "action:=cafree" нужен только для дочернх MDI окон.


 
Viktor Kushnir   (2002-10-22 08:25) [4]

Иногда Action := caFree очень помогает. Если нужно убить окно из самого себя. По другому - сплошные AV


 
lammoth   (2002-10-22 08:59) [5]


> Иногда Action := caFree очень помогает. Если нужно убить
> окно из самого себя. По другому - сплошные AV


А Release не пробовал делать?


 
Bis   (2002-10-22 09:02) [6]

Сплошные AV получаются, когда лезешь не в ту память.

И вообще зачем передавать в конструктор Self, если форма убивает саму себя? Даже если и передавать, то обычно Application.


 
Song   (2002-10-22 09:14) [7]

После caFree не забудьте указатель объекта сбросить на nil


 
sen   (2002-10-22 09:42) [8]

2 bis а кто говорит, что надо передавать. Читай внимательнее


 
KSergey   (2002-10-22 10:37) [9]

Есть методы уничтожить форму/освободить память:

1. Free - вызывается только все методов формы (хотя и не совсем так; подробнее можно поискать на форуме - когда-то я это здесь описывал);
2. Release - можно вызвать хоть где, хоть в методе самой формы;
3.В обработчике события OnClose присвоить action:=cafree.

В итоге результат будет абсолютно одинаков, причем в случае 3 на самом деле в VCL вызывается Release, а в обработчике сообщения, посылаемого по Release, вызывается Free (причем в методе самой формы!). Впрочем, это уже детали. Важно то, что результат будет одинаков и можно выбирать по вкусу и ситуации.
Ну и не забывать о том, о чем напоминает Rouse_ © (22.10.02 05:05).

PS: надеюсь меня поправят, есл что-то забыл.


 
MegaBass   (2002-10-22 11:27) [10]

усли делаешь form:=TForm.Create(self) тоесть как Owner-а передаешь self, то при Owner.destroy вызываются Destroy всех компонентов которые принадлежат Owner-у.


 
KSergey   (2002-10-22 11:42) [11]

KSergey © (22.10.02 10:37)
Описочка как всегда у меня, но тут досадная:
1.Free - вызывается только в не методов формы...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-101456
Txxx
2002-09-07 22:24
2002.10.31
Конкурс на лучшего дешифровальшика !!!


3-101113
malex_1
2002-10-08 08:31
2002.10.31
OleDB Provider for ODBC/Microsoft Visual FoxPro Driver


8-101392
Alexfdfdfd
2002-06-27 01:30
2002.10.31
Народ , чё такое данные в формате dib


7-101535
Ш-К
2002-08-23 15:23
2002.10.31
Переключаться программно между ECP/EPP.


7-101536
QymL
2002-08-21 20:53
2002.10.31
Не вызывается DLLProc(DLL_PROCESS_DETACH)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский