![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Тогда я чего-то не пойму: зачем ты делаешь fUsers.Close если кнопка, обладая ModalResult, кроме как mrNone, сама закроет форму!
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Dayana |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
В этом и ошибка. Не нужно насильно закрывать форму, тогда ModalResult формы сохранит значение ModalResult кнопки. А если пароль неверный, то меняй значение ModalResult формы в коде...
|
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
Все супер! получилось. НаписАла так:
procedure TfUsers.btnOKClick(Sender: TObject); begin case fUsers.cbLogin.ItemIndex of 0:begin if fUsers.ePassword.Text <> '123' then MessageDlg('Неверный пароль!', mtError, [mbOK], 0); end; 1:begin if fUsers.ePassword.Text <> '1234' then MessageDlg('Неверный пароль!', mtError, [mbOK], 0); end; 2:begin if fUsers.ePassword.Text <> '12345' then MessageDlg('Неверный пароль!', mtError, [mbOK], 0); end; end; // конец CASE end; только если я ввожу неправильный пароль, сначала выскакивает окно "Неправильный пароль", и пользователь может ввести его еще раз. А потом я опять ввожу неправильный пароль, но программа активизируется, как-будто это правильный пароль. |
|||
|
||||
| &-ray |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 406 Регистрация: 15.4.2003 Где: Казахстан, г Аста на Репутация: нет Всего: нет |
Раз уж такие заморочки с ModalResult то можно обойтись и без него.
Просто при нажатии кнопки btnOk проверяй правильность пароля, если правильно, то просто закрывай форму и все, если нет то оставляй ее открытой. По клику на btnCancel убивай приложений (Halt). Соответственно надо подправить dpr, чтобы не было проверок ModalResult -------------------- "Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б. -------------------- И снова мышь беру я в руки Куда иду? - Конечно в сруки! |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
СУПЕР! все получилось и работает. Сделала так:
во-первых ввела глобальную переменную FLAG : Boolean, которая отвечает за то, что правильно введены пароль и логин. во-вторых, написАла следующее (форма авторизации, нажата кнопка ОК): procedure TfUsers.btnOKClick(Sender: TObject); begin case fUsers.cbLogin.ItemIndex of 0:begin if fUsers.ePassword.Text <> '123' then begin MessageDlg('Неверный пароль!', mtError, [mbOK], 0); FLAG := false; end else begin fUsers.Close; FLAG := true; end; end; 1:begin if fUsers.ePassword.Text <> '1234' then begin MessageDlg('Неверный пароль!', mtError, [mbOK], 0); FLAG := false; end else begin fUsers.Close; FLAG := true; end; end; 2:begin if fUsers.ePassword.Text <> '12345' then begin MessageDlg('Неверный пароль!', mtError, [mbOK], 0); FLAG := false; end else begin fUsers.Close; FLAG := true; end; end; end; // конец CASE end; .dpr : begin Application.Initialize; Application.CreateForm(TfMain, fMain); Application.ShowMainForm := False; Application.CreateForm(TfUsers, fUsers); fUsers.ShowModal; if FLAG then begin Application.ShowMainForm := true; Application.Run; end else Halt; end. В-третьих, убрала с кнопок ОК и Отмена значения ModalResult mrOK и mrCancel соответственно. СПАСИБО ВСЕМ ЗА ПОМОЩЬ!!!!!!!!!!!!!!!!! чтобы я без вас делала?! |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
единственное - долго загружается главная форма, после ввода правильных логина и парол.......... можно это как подправить?
|
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Проверять пароль на Form1.onShow
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
jnSow какой формы? авторизации или главной?
|
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
т.е. onShow
|
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Ну естесно главной
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| *^angel^* |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 5.3.2003 Где: Столица нашей нео бъятной Родины Репутация: нет Всего: нет |
а что делать с обработчиком на кнопке ОК, в форме авторизации? просто fMain.Show? - тогда если пароль неправильный, то форма все равно показывается.
ведь ничего не происходит, если просто сделать проверку в Show. |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Да сделай Close асинхронно и всё..
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Попробуй открывать главное окно программы в обработчике закрытия формы авторизации
|
|||
|
||||
| SmaLL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
Я делал так
-------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
иф ModalResult<>mrOk зен WM_CLOSE
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
![]()
|
| Правила форума "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. |