| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > В OnCreate формы запретить отображение этой формы |
| Автор: Delphist 5.6.2006, 11:33 |
| В OnCreate формы происходит не которые вычисдения, если в ходе вычислений возникает ошибка, то необходимо запретить отображение и существование этой формы. Я в OnCreate делал self.Free это приводит к ошибке. |
| Автор: _hunter 5.6.2006, 11:36 |
| а не нада OnCreate менять свойства видимости... проще исключение кинуть |
| Автор: Delphist 5.6.2006, 11:40 | ||
В смысле Abort что ли? |
| Автор: Sunr1se 5.6.2006, 11:44 |
| А не проще создать таймер с interval=1 и в событии OnTimer прописать Form2.Free? А таймер включать в том случае, если в ходе вычислений возникла ошибка. |
| Автор: _hunter 5.6.2006, 11:56 |
в смысле throw (или rise -- точно не помню) |
| Автор: BinaryEvil 5.6.2006, 12:01 |
| raise Добавлено @ 12:02 self.free нинада, лучше exitproccess(0) |
| Автор: Romikgy 5.6.2006, 12:37 | ||
А смысл тогда форму создавать, легче имхо этого не допустить
|
| Автор: jaAlex 5.6.2006, 23:26 | ||
Запретить отображение: Form1.Hide; Запретить существование: Form1.Free; Если я правильно тебя понял, то это делается так. |
| Автор: Mechanic 6.6.2006, 22:57 | ||
А я просто пишу
|
| Автор: BinaryEvil 6.6.2006, 23:19 |
| Mechanic, никатит, онкриэйт вызывается до обработки онкриэйт предка, ещё формы по сути небуит, close выдаст те ошибку |
| Автор: Poseidon 6.6.2006, 23:55 |
| А если попробовать старый проверенный halt? Жестоко конечно, но можно (хотя лучше не нужно Самый правильный вариант у Romikgy. |
| Автор: BinaryEvil 7.6.2006, 00:02 |
| Mechanic, звыняй, беру свои слова обратно.чёта напутол я. Delphist, так надо тока форму закрыть или сразу прогу? |
| Автор: Sunvas 7.6.2006, 00:27 | ||
Мдя.. А
не пробовал? |
| Автор: vv3 7.6.2006, 09:57 | ||
| Действительно, зачем создавать форму, если при некоторых условиях ее нужно уничтожать. Romikgy прав на 100%. И не Form1.Free, а Form1.Release (Borland советует именно так). А дальше в коде что происходит при обращении к форме, которая не существует? В общем, если уже так приспичило именно в onCreate ее же и убить, то так:
Причем, если таким образом убить главную форму приложения, то само приложение останется висеть в памяти, но уже без формы. |