Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
 Аватар для DorenskiyAA
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 20

Порядок запуска приложения

22.06.2012, 13:52. Показов 4414. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, объясните пожалуйста почему конструкторы форм приложения выполняются по порядку:
C++
1
2
3
4
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm2), &Form2);
….
, а отображение форм (событие FormShow) наступает произвольно, в том числе до наступления
C++
1
Application->Run();
Я по-неопытности думал что FormShow может быть только после Run(). Что тогда значит Run()?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.06.2012, 13:52
Ответы с готовыми решениями:

Как изменить порядок запуска форм в C++ builder
Как изменить порядок запуска форм в C++ builder? К примеру чтобы при запуске программы вместо Form1 запускалась Form2.

Запрет запуска приложения
Люди помогите пожалуйста,нужно запретить запуск определенного приложения допустим *.exe(программно на с++\builder) Заранее блогодарен.

Отслеживание запуска полноэкранного приложения
Требуется отследить запуск полноэкранного приложения. Т.е. при запуске полноэкранного приложения моя программа должна отменять свойство...

28
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.06.2012, 00:34
Студворк — интернет-сервис помощи студентам
T2skler правильно сказал - Run() запускает приложение, если это для вас то же, что и форма, то это не так.
0
 Аватар для DorenskiyAA
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 20
23.06.2012, 06:31  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Run() запускает приложение, если это для вас то же, что и форма, то это не так.
А что тогда есть такое приложение, если формы оживают до запуска приложения? Заранее извиняюсь за безграмотность в этом вопросе.

Добавлено через 3 минуты
Цитата Сообщение от BRcr Посмотреть сообщение
он исполняет код в контексте основного потока, приостанавливая на это время исполнение потока, его вызвавшего
Ясно, насколько правильно я понимаю, основной поток один, и именно он запускается до наступления рун?

Цитата Сообщение от T2skler Посмотреть сообщение
Опишите более подробно, что вы хотите сделать?
Предположим, имеется две формы, один поток. В метод Synchronize() передана функция, которая работает с vcl на обоих формах. Если инициировать/запустить поток при создании или отображении формы 2 модально (как например, это сделал vxg), то поток будет работать с vcl только формы 2, а при ее закрытии возникнет исключение.
Если форму 2 создавать не модельно, то раз на раз не приходится. Если в конструкторах или обработчиках форм FormShow() имеется какой либо код, может глюкануть. Особенная фигня у меня вышла, когда при FormShow формы 2, в vcl подставляются значения по умолчанию, которые берутся с формы 1. До некоторого критического веса все работает, потом может глюкануть.

В архиве exe не собран, нужно компилировать проект.
Вложения
Тип файла: rar Новая папка (13).rar (886.1 Кб, 6 просмотров)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.06.2012, 17:17
Мысль, что шуры-муры в файле Project1.cpp происходят раньше, чем махинации в файле Unit1.cpp, не посещала?
0
 Аватар для DorenskiyAA
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 20
25.06.2012, 07:18  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Мысль, что шуры-муры в файле Project1.cpp происходят раньше, чем махинации в файле Unit1.cpp, не посещала?
Это вы к чему, к тому что суть моего вопроса абсурдна или к тому что при содании форм нельзя инициировать vcl значениями, взятыми из других форм, или к тому что в конструкторах форм не следует писать код?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.06.2012, 10:17
это я к тому, что Project1.cpp - это одно, а Unit1.cpp формы - нечто несколько другое, а все ваши мысли относительно модальных форм и потоков вцл мне не понятны и, видимо, имеют отношение к какому-нибудь конкретному проекту, который может глюкануть, а может и не глюкануть
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,468
25.06.2012, 11:43
LK, TC хочет докопать что же делает Run - в ходе издевателств над IDE выясняется что он делает нечто не совпадающее с мнением обывателей потому как цикл выборки сообщений явно уже работает до вызова Run
0
 Аватар для DorenskiyAA
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 20
25.06.2012, 11:52  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
это я к тому, что Project1.cpp - это одно, а Unit1.cpp формы - нечто несколько другое, а все ваши мысли относительно модальных форм и потоков вцл мне не понятны
а что тут не понятного, формы всего две, не о каком моём проекте речи не идет. Пример приложен вполне наглядный, исключение в проекте формируется тоже вполне понятно почему. Вы говорите, что Run() запускает приложение, но мне не понятно, что подразумевает это слово, если формы оживают до запуска приложения? Суть проблемы очевидна, что при некоторых обстоятельствах запустившиеся до запуска приложения формы, могут обратиться к vcl на форме 1, которая еще на запустилась т.к. Run() не произошло. Т.о. код в обработчиках OnShow и конструкторах форм с обращением к vcl на других формах потенциально опасен.

Добавлено через 1 минуту
Цитата Сообщение от vxg Посмотреть сообщение
TC хочет докопать что же делает Run - в ходе издевателств над IDE выясняется что он делает нечто не совпадающее с мнением обывателей потому как цикл выборки сообщений явно уже работает до вызова Run
когда повзраслею, научусь также локанично выражать свои мысли
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.06.2012, 12:03
Run - не более, чем запуск приложения, естественно, что этому предшествует некая подготовка.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
25.06.2012, 12:09
Цитата Сообщение от DorenskiyAA Посмотреть сообщение
Т.о. код в обработчиках OnShow и конструкторах форм с обращением к vcl на других формах потенциально опасен.
Даже зубочистка потенциально опасна; можно ее ненароком в глаз воткнуть.:black_eye.:
Просто не надо забывать про порядок создания форм и проверять указатели почаще на неравенство NULL.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2012, 12:09

Порядок инициализации ООП-приложения
Есть с не самой простой структурой классов приложение. Необходимо написать нечто в консоль ПЕРЕД инициализацией всего. Но если нужный код...

Передача данных для запуска приложения
Всем привет. у меня такой вопрос... кто может сделать программу смысл такой, имеется файл кпримеру qwerty.exe если его запускаем...

Запрет запуска второй копии приложения
Всем огромный привет!!!!:) Помогите пожалуйста! Как запретить запуск второй копии приложения?

Вывести окно с сообщением во время запуска приложения
Подскажите если не влом. Сам что-то пока не догадался. В приложении в FormCreate запускается некий сравнительно длительный процесс и форма...

Программа для предотвращения запуска определенных процессов во время работы приложения
Доброго времени суток. Я мало знаком с программированием в целом, и мне нужна помощь, может какие конкретные инструкции. Если точнее, то...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энергоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерированы
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru