![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить создана ли моя форма, метод assigned не работает [D5, D6, Win95/98, WinME, NT4, Win2k, WinXP]
Eugene © (2002-08-25 23:24:00)Здравствуйте.
Как узнать есть ли на самом деле моя форма и почему после метода MyForm.Release метод Assigned(Myform) выдает True ?
Заранее спасибо.
Игорь Шевченко (2002-08-26 12:14:00) [1]kull © (26.08.02 11:27)
Догмы нету. Release используется в обработчиках событий той формы, которую надо закрыть. Free - извне.
kull (2002-08-26 11:27:00) [2]А ведь я, пожалуй неправ был...
Release ждет когда закроется форма. У Release пожалуй есть свои достоинства.
Но вот в примерах я не нашел вызовов Release. И к тому же если использовать Close, то можно в OnClose управлять закрытием формы через параметр Action.
Eugene (2002-08-26 03:47:00) [3]Всем большое спасибо.
Ученик (2002-08-26 01:52:00) [4]Имелось ввиду помощь по:
Ученик (2002-08-26 01:50:00) [5]>kull © (26.08.02 01:42)
TObject.Free, TCustomForm.Release
kull (2002-08-26 01:42:00) [6]Может, конечно, я упустил из виду его рекомендацию, но ни в одном из его примеров в каталоге Demos нет вызова Release, а только Close.
Ученик (2002-08-26 01:38:00) [7]>kull © (26.08.02 01:14)
Borland рекомендует Release
kull (2002-08-26 01:14:00) [8]Что вы все к Release пристали? Вам что Close нехватает?
MyForm.Close;
MyForm := nil;
либо
MyForm.Close;
MyForm.Free;
MyForm := nil;
зависит от формы.
И никаких OnClose и OnDestroy ловить не надо, т.к. Close ждет когда форма закроется а Release - нет.
Ученик (2002-08-25 23:30:00) [9]в TMyForm.OnDestroy
MyForm := nil;
Юрий Зотов (2002-08-25 23:29:00) [10]Потому что при уничтожении объекта ссылки на него не обнуляются, это надо делать ручками.