![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 7 Всего: 17 |
Не могу я понять таких людей. Это примерно как лезть в окно, вырезая решётку автогеном только из-за того, что дверь открывается не внутрь, а наружу. Человеку говоришь: "Ну потяни ты на себя дверь, и всё, никаких проблем..." А он гордо заявляет, что его задача решена, и посему такое решение его вполне устраивает, и добавляет: "Классная штука - автоген, что бы я без него делал? Спасибо тому парню, который мне его дал..." В чем состоит проблема? В том, что первая создаваемая форма в приложении назначается главной, а потом нельзя назначить главной формой другую? Ну, так, Application.CreateForm как раз и предназначена для автоматического назначения главной формы. Т.е. человек сначала сам, своими собственными руками назначает главную форму, а потом думает, как бы её переназначить... Это какой-то мазохизм... Если создавать форму через конструктор, например TPasswordForm.Create, то форма не назначается главной - создавай, отображай, закрывай, уничтожай хоть десяток, а первая созданная через Application.CreateForm будет назначена главной. И переназначать главную форму просто нет необходимости. |
|||
|
||||
| Illusion Dolphin |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 5 Всего: 63 |
Это исправляется без проблем.
Согласен, тут отнюдь не гибкое решение, которое не всегда приминимо, могли бы это уже и исправить.
У меня в приложении нет главной формы -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||||
|
|||||||
| bems |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
вторая половина
да знают тут все для чего оно предназначено. но работает неудобно. -------------------- Обижено школьников: 8 |
||||||
|
|||||||
| БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 7 Всего: 17 |
Я ни в коем случае не отрицаю, что бывают какие-то специфические ситуации, но большинство вопросов по поводу переназначения главной формы связаны с заставками и запросами логинов/паролей, т.е. в большинстве случаев реальной необходимости переназначения нет. Однако, я практически не встречаю советов создавать форму через конструктор, чтобы она не назначалась главной. |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 5 Всего: 63 |
Заставку хорошо бы делать на винапи (т.к. VCL не многопоточный) в отдельном потоке, чтобы не мешать загрузке приложения. Переназначение главной формы это всегда специфическая задача, и очень прескорбно, что до сих пор приходится людям писать костыли чтобы обойти "стандартное решение". -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
А по-моему, возникновение необходимости переназначить главную форму - это ошибка в архитектуре. В хорошо продуманных программах такой необходимости нет. Заставка? Она создается и уничтозается отдельно, пока главная форма грузится. Форма логинов? Так эту форму нужно показывать после загрузки главной. В голову вообще не приходят варианты, когда может понадобится переназначение главной формы и что бы это ну никак нельзя было обойти.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| northener |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Вот с этим никак не согласен. Приложения требующие проверку учетной записи своего пользователя как правило довольно большие и их загрузка занимает довольно заметное время. Так зачем его тратить, если проверка даст отрицательный результат? Представте себе Winlogon, который проверяет учетную запись пользователя после полной загрузки ОС! Это конечно не полностью адекватный пример, но почти. Ведь трудно себе представить Дельфи-приложение, которое после "загрузки" главной формы ещё не готово выполнять все свои функции, если авторизация пройдет успешно.
Примеру от Юрия Зотова на Королевстве уже почти 4 года. (А может быть и больше).
Ещё при царе горохе в демках в поставке Дельфи появился пример создания Splash Screen. В проекте MastApp.dpr И советы посмотреть этот пример я встречал неоднократно. И сам советовал. Но воз и ныне там. Гугль и иже с ним возвращает только советы кульхацкеров уровня песочницы. :( Хотя этот пример даже содержит хелп файл (правда на аглицком), в котором чёрным по белому написано: The Splash screen appears when MASTAPP starts. MASTAPP.DPR calls TSplashForm.Create to create the splash screen and the instance of the application, calls SplashForm.Show to display the form while all other MASTAPP forms are created, and calls SplashForm.Update to display the application's "Loading ..." message on the form. When all MASTAPP forms are created, MASTAPP.DPR calls SplashForm.Hide to hide the Splash screen display. И никаких проблем с MainForm. Это сообщение отредактировал(а) northener - 10.6.2013, 01:42 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
||||||
|
|||||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
А кто говорит о том, что нужно сначала все загружать, а потом спрашивать логин? Создаем главную форму - создаем форму ввода логина и показываем ее - если логин проходит, грузим все что нам надо для работы. Создание главной формы не говорит о том, что нам тут же надо и все загружать сразу. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Ну не скажи. Раз главное окно программы показано, то среднестатистический пользователь считает, что ему уже можно нажимать на всякие пупочки в этом окне чтобы получить желаемый результат. А если основной функционал программы ещё не загружен, то вышеуказанный пользователь очень огорчится когда у него ничего не выйдет -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Или я неправильно понял:
Где в таком случае размещаем создание и показ формы ввода логина? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Poseidon |
|
||||||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
northener, шутки шутим?
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||||||
|
|||||||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |