|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.12.2010, 23:27 | #1 | ||
Регистрация: 18.12.2010
Сообщений: 3
|
Проблема закрытия проекта вместе с главной формой.
Собственно, суть вопроса: есть некий проект, в котором реализовано разделение прав доступа через ввод логина и пароля. Т.е. вводим данные, открывается главная форма проекта, мы начинаем работать в проге. Вся проблема в том, что с формой ввода логина надо что-то сделать. Т.к. форма логина-пароля считается главной, с точки зрения Delphi (ну, в смысле, запускается самой первой, то если написать команду "close", вместе с формой закрывается вся программа. Если поставить свойство "Hide", после закрытия всех форм прога не закрывается, а висит в трее (ладно, если мы всего лишь скомпилировали приложение - проблема решится нажатием Ctrl+F2, а если запускать через .exe .... ).
Надо как-то "обмануть" Delphi, вопрос только "как"? В инете я нашел один способ, но он у меня не прокатил =( Код формы ввода логина и пароля: Цитата:
Код главной формы: Цитата:
Жирным выделено то, что имеет отношение к рассматриваемому методу "обмана" Delphi, так сказать. Красным выделены ошибки в тех, местах, в которых Delphi ругается. Код, написанный на форме ввода логина-пароля ошибок не выдает, но и не функционирует (без кода, написанного в главной форме. Допустим, так и должно быть...). На код, написанный в главной форме, Delphi ругается, хотя что там неправильно - загадка... Вроде везде все прописано. Да, еще в том совете было написано, что форму логина-пароля надо убрать из списка автоматически создаваемых форм. Если ее оттуда убрать (ну, это очевидно), она вообще не будет появляться при компиляции проекта. А мне такого счастья тоже не надо =) Последний раз редактировалось BlackWhyT; 18.12.2010 в 23:32. |
||
18.12.2010, 23:47 | #2 |
Регистрация: 18.12.2010
Сообщений: 3
|
Блин, сейчас посмотрел, оказывается подобная тема уже существует. Просто раньше ее не увидел. Однако все равно интересно, в чем ошибка МОЕГО СПОСОБА???
Да, и еще... Прокэпьте по поводу метода "Free" у форм. В первой теме прочитал, что можно через него попробовать, но я вообще про такое в первый раз читаю. В чем его суть? Последний раз редактировалось BlackWhyT; 18.12.2010 в 23:54. |
19.12.2010, 00:36 | #3 | |
Регистрация: 17.12.2010
Сообщений: 6
|
Просто не могу удержаться... Такого бреда я, правда, еще не видал... Может редко по таким, с позволения сказать форумам, лазаю?...
Решается проблема элементарно: в файле проекта (.dpr) (только не спрашивайте, как его открыть в ИДЕ, а то я застрелюсь немедленно) пишем примерно такое: ............ begin Application.Initialize; ===========><8============ with LoginForm.Create(Application) do try Result := ShowModal = mrOk; finally Free; end; ===========><8============ Application.CreateForm(TMainForm, MainForm) ; Application.Run; end. И не забываем соотв. модуль указать в uses. И вообще, в указанном промежутке можно написать много чего полезного. На главную форму и прочие подобные умолчания Delphi это никак не влияет. Цитата:
TObject.Free уничтожает объект, как известно. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с формой | rdama | PHP | 1 | 21.07.2010 09:34 |
Проблема с формой | Underfinder | Microsoft Office Access | 3 | 03.03.2010 08:29 |
Загрузить библиотеку вместе сразу вместе с программой | Anekdot | Общие вопросы Delphi | 4 | 26.01.2010 23:14 |
Запуск диалога ввести пароль перед главной формой MDIForm | Comatoz | Общие вопросы Delphi | 0 | 07.06.2009 18:20 |
Проблема с формой. | Teen4jump | Общие вопросы Delphi | 2 | 07.08.2007 16:46 |