Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663

Ошибка: Сannot make a visible window modal

02.03.2016, 11:03. Показов 4575. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть основная форма Form1, из неё открываю Form2
Из Form2 открываю Form3.
Потом пытаюсь открыть из Form3 форму Form2 -
пишет ошибку cannot make a visible window modal

код на Form2
C++
1
2
3
Form2->Close();
 Form2->Hide();
 Form1->Button25->Click();
код на Form3
C++
1
2
3
Form3->Close();
 Form3->Hide();
 Form1->Button25->Click();
код на Form1
открытие Form2
C++
1
Form2->ShowModal();
Button25
C++
1
2
3
4
5
6
7
8
if (Form2->Visible==false)
    {
        Form3->ShowModal();
    }
if (Form3->Visible==false)
    {
        Form2->ShowModal();
    }
В чем трабл? Или как то проще можно? Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2016, 11:03
Ответы с готовыми решениями:

Cannot Make a visible window Modal
Помогите устранить ошибку Cannot Make a visible window Modal При открытии другой формы.

Ошибка: Cannot make a visible window modal
Здравствуйте, вылазит эта ошибка, я уже пробовал многое, но не помогло. Помогите пожалуйста, а то я уже готов сдаться и идти делать это на...

Cannot make a visible window modal
не пойму как исправить вот код: Открываю форму из главной try EditFilter_frm := TEditFilter_frm.Create(self); if...

27
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33479 / 21577 / 8250
Регистрация: 22.10.2011
Сообщений: 37,036
Записей в блоге: 12
02.03.2016, 14:42
Лучший ответ Сообщение было отмечено Sergey_03 как решение

Решение

Студворк — интернет-сервис помощи студентам
Sergey_03, не нужен никакой таймер.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
TForm *ActiveFrm = 0;
 
void __fastcall TForm1::ChangeModal() // не забудь добавить прототип в класс формы
{
    do
    {
        if (ActiveFrm->ShowModal() == mrOk)
        {
            ActiveFrm->Close();
            ActiveFrm->Hide();
        }
        ActiveFrm = (ActiveFrm->ClassName() == "TForm2" ? (TForm*)Form3 :
            (TForm*)Form2);
    }
    while (1); // тут, разумеется, можно поставить другое условие на выход из цикла.
}
 
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    ActiveFrm = Form2;
    ChangeModal();
}
 
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    ActiveFrm = Form3;
    ChangeModal();
}
, по нажатию кнопок в модальных формах достаточно:
C++
1
2
3
4
void __fastcall TForm2::Button1Click(TObject *Sender)
{
    this->ModalResult = mrOk;
}
2
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
02.03.2016, 15:05  [ТС]
Добавлено через 1 минуту
Цитата Сообщение от volvo Посмотреть сообщение
не нужен никакой таймер.
спасибо! сейчас попробую.

Добавлено через 58 секунд
Цитата Сообщение от Почтальон Посмотреть сообщение
А с чего вы решили что модальность
а как еще? такая логика проги
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
02.03.2016, 15:21
У формы есть свойство - StayOnTop, если уж так хочется использовать перекрытие форм.
1
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
02.03.2016, 15:29  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
по нажатию кнопок в модальных формах
а как выйти из формы 2 в форму 1 с закрытием всех модальных окон?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33479 / 21577 / 8250
Регистрация: 22.10.2011
Сообщений: 37,036
Записей в блоге: 12
02.03.2016, 15:43
Ну, например изменять какой-то глобальный флажок, а в while отслеживать его состояние.
1
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
02.03.2016, 15:46  [ТС]
то есть, если флаг в true(выйти в первую ворму) , то в цикле просто не писать нового присвоения активному модальному окну? или ка?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33479 / 21577 / 8250
Регистрация: 22.10.2011
Сообщений: 37,036
Записей в блоге: 12
02.03.2016, 15:52
C++
1
2
3
4
5
    do
    {
        // ...
    }
    while (!flag); // как только flag стал true - ты тут же выйдешь из цикла, не надо больше ничего делать.
1
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
02.03.2016, 15:56  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
C++
Огромное спасибо. Все заработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2016, 15:56

Не получается форму, ошибка "Cannot make a visible window modal"
Значит так, есть два sRadioButton procedure TForm1.sRadioButton2Click(Sender: TObject); begin Form3.ShowModal; ...

Ошибка: "cannot make a visible window modal"
procedure TForm7.Button1Click(Sender: TObject); begin form7.Caption:='Добавление Абонента'; form7.Edit1.Text:=''; ...

Сannot make MDE file
по каким причинам аксесс не может создать *.MDE? спасибо

Ошибка "cannot focus disabled or visible window"
Здравствуйте. После запуска программы при нажатии на image2 выходит ошибка "проект вызвал класс исключения "envailed operation" с...

вывод php кода в modal window
Здравствуйте, не получается вывести php код в модальное окно, все делал по гайдам в интернете. <!-- Блок модального окна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru