** Pan-SQL |
Отправлено: 06.10.2005, 10:56 |
|
Не зарегистрирован
|
Здравствуйте коллеги! Очень необходима ваша помощь в решении следующей задачи: Например, приложение имеет 3 формы (Form1, Form2 и Form3). Форма Form2 является модальным окном (открывается методом ShowModal()), Главная форма (Form1) содержит кнопку (Button1). При нажатии на эту кнопку открывается 3 форма (Form3), а первая (Form1) скрывается, вот ее код:
Form3->Show();
Form1->Hide();
Также форма Form1 содержит еще одну кнопку (Button2), которая открывает модальную форму. Модальная форма (Form2) тоже содержит кнопку (ButtonModal1). При нажатии на нее модальная форма должна закрываться, должна открыться 3 форма (Form3), а первая (Form1) должна скрыться, вот ее код:
Form2->Close()
Form3->Show();
Form1->Hide();
Проблема в следующем: если форму Form2 открывать немодальным способом, то все работает нормально, когда она открыта модально, при нажатии на кнопку ButtonModal1 форма Form3 открывается и возникает исключение: Cannot change Visible in OnShow or OnHide. Кто когда-либо сталкивался с подобной проблемой, поделитесь опытом. Заранее благодарен.
|
|
AVC |
Отправлено: 06.10.2005, 11:35 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Заблуждаетесь. Ошибка у вас проекте. Прикладываю реализацию описанных вами форм — все работает.
Замечания
- закрыв Form3 — теряете контроль над приложением
- судя по все возрастающему числу проблем, с которыми вы сталкиваетесь у вас ошибка в логике построения приложения (плохо определены правила что чем и как управляет). Уж если так хочется — сделайте централизованный диспетчер форм и работайте через него.
|
|
** Pan-SQL |
Отправлено: 06.10.2005, 11:56 |
|
Не зарегистрирован
|
При открытии формы Form2 методом Show() проблем как таковых не ваозникает. Но при открытии этой формы мтодом ShowModal() возникает вышеописаное исключение В чем дело. |
|
avc* |
Отправлено: 06.10.2005, 12:11 |
|
Не зарегистрирован
|
Наверное хоризма такая
В приложенном проекте при нажатиии кнопки Button2 вызывается Form2->ShowModal(); Видели ?
Повторюсь — у меня на компьютере в этом проекте ни каких исключений не возникает
В конце концов пройдитесь отладтчиком. Переменные под экземпляры форм создаются правильно? Сами обработчики не пытаются поставить фокус на скрытые компоненты? |
|
** Pan-SQL |
Отправлено: 06.10.2005, 12:47 |
|
Не зарегистрирован
|
Добавьте к вашему проекту Form3. Напишите обработчик для кнопки в Form2:
Form2->Close();
Form3->Show();
Form1->Hide() |
|
Guest |
Отправлено: 06.10.2005, 13:17 |
|
Не зарегистрирован
|
Вы поленились даже посмотреть то что я прикрепил.
Там есть и Form3 и Close, Show, Hide. Я же писал, что смоделировал задачу в постановке первого поста.
Зачем вы спрашиваете если ответ вас не интересеут?
|
|