Непонятки с формой
Или я сошёл с ума или я чего-то не понимаю. Есть форма которая грузится как модальная. В её событии OnShow происходит очистка полей. Но если закрыть форму кнопкой 'X', а потом опять открыть, почему-то ничего не очищается, а если её закрыть с помощью modalresult то всё потом нормально очищается. Может кто знает в чём дело?
У меня пятый билдер, попытался повторить ситуацию согласно описанию и обнаружил, что всё нормально работает, хоть по кнопочке с крестиком, хоть по ModalResult. Так что смотрите у себя.
Попробуй в OnClose напиши Action=caFree;
Цитата:
Originally posted by SEDEGOFF
Попробуй в OnClose напиши Action=caFree;
Попробуй в OnClose напиши Action=caFree;
Я теперь всё чищу на OnClose и вроде всё заработало. А баг этот я нашёл в билдере 6 и в 7 дельфях. Видимо проблемы переходного возраста.
Если не ставить Action=caFree то метод Close() делает форму Hide ну и понятно дело физически ее не уничтожает и при следующем ее "создании" программа просто делает эту форму видимой
Советую окна создавать и уничтожать динамически + в настройке свойств проекта убирать эту форму из списка создаваемых автоматически. Если показываем как модальную, то можно delete ставить сразу опосля showModal(), а если не модальная, то в OnClose формы поставить delete this;