![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
День добрый!
Помогите разобраться с проблемой: (D6) есть окно авторизации (пароль и логин), после проверки должно появляться основное окно программы. Но после подтверждения логина и пароля (если они верны) программа вылетает и прекращает работу. пишу в .dpr: begin Application.Initialize; Application.CreateForm(TfUsers, fUsers); // форма авторизации fUsers.ShowModal; //показываю форму авторизации if fUsers.ModalResult = mrOK then // если правильный лигин и пароль и нажали ОК, проверка на // правильность пароля и логина пишу в форме авторизации при нажатии на ней кнопки ОК begin Application.CreateForm(TfMain, fMain); // создание основной формы Application.Run; end else Application.Terminate; end. не пойму почему вылетает? ставлю "стоп" на else Application.Terminate; и при проверке значений fUsers.ModalResult = 2, очень странно; а mrOK = 1; естественно вылетать будет. Вот и не ясно почему двум равно. Может кто знает как мне можно помочь? |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Потому что главной считается первая автоматически созданная форма. У тебя первая - fUsers. И когда она закрывается, соответственно закрывается и программа.
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| &-ray |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 406 Регистрация: 15.4.2003 Где: Казахстан, г Аста на Репутация: нет Всего: нет |
Project -> Options -> Forms -> MainForm (выбери из списка fmain)
А вместо Application.Terminate подставь Halt (по-моему так будет более корректно, так как ты закрываешь приложение на стадии инициализации) -------------------- "Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б. -------------------- И снова мышь беру я в руки Куда иду? - Конечно в сруки! |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
я написАла по-другому, но все равно такая же проблема.
begin Application.Initialize; Application.CreateForm(TfMain, fMain); Application.ShowMainForm := False; Application.CreateForm(TfUsers, fUsers); fUsers.ShowModal; if fUsers.ModalResult = mrOK then begin Application.ShowMainForm := true; Application.Run; end else Application.Terminate; end. в Project -> Options -> Forms -> стоит fMain как главная форма. Что еще я криво написАла? |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Dayana |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
Может у тебя ошибка при проверке логина и пароля? Т.е. при нажатии на кнопке
Ok всегда выходит с ModalResult = 2.... Покажи код, что происходит при нажатии кнопки Ok. |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
Dayana да, именно так: "всегда выходит с ModalResult = 2" не знаю почему. код, к-ый обрабатывается при нажатии на ОК (в форме авторизации):
procedure TfUsers.btnOKClick(Sender: TObject); begin case fUsers.ComboBox1.ItemIndex of 0:begin if fUsers.Edit1.Text = '123' then fUsers.Close else MessageDlg('Неверный пароль!', mtError, [mbOK], 0); end; 1:begin if fUsers.Edit1.Text = '1234' then fUsers.Close else MessageDlg('Неверный пароль!', mtError, [mbOK], 0); end; 2:begin if fUsers.Edit1.Text = '12345' then fUsers.Close else MessageDlg('Неверный пароль!', mtError, [mbOK], 0); end; end; // конец CASE end; |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
Song куда это вставлять надо?
|
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
А ModalResult надо на кнопки назначать. Ты назначила?
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
В dpr -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Потому что этот код у кнопки btnOK в ModalResult. Ты когда тип кнопки назначала (с зелёной галочкой наверно), ModalResult у тебя назначился самостоятельно. -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
neutrino да назначила, при создании фрмы:
procedure TfUsers.FormCreate(Sender: TObject); begin ComboBox1.Items.Clear; ComboBox1.Items.Add('Администратор'); ComboBox1.Items.Add('Менеджер'); ComboBox1.Items.Add('Секретарь'); Edit1.PasswordChar := '*'; btnOK.ModalResult := mrOk; btnCancel.ModalResult := mrCancel; end; |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
ничего такого не было. у меня кнопки ОК и ОТМЕНА - обычные кнопки, а не TBitBtn: btnOK: TButton; btnCancel: TButton; |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Посмотри их ModalResult
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
Song вот такие:
btnOK.ModalResult := mrOk; - 1 btnCancel.ModalResult := mrCancel; - 0 |
|||
|
||||
![]()
|
| Правила форума "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. |