Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка в коде 
:(
    Опции темы
*^angel^*
Дата 8.5.2003, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



День добрый! smile.gif
Помогите разобраться с проблемой: (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; естественно вылетать будет. Вот и не ясно почему двум равно.
Может кто знает как мне можно помочь?
PM MAIL ICQ   Вверх
Song
Дата 8.5.2003, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Потому что главной считается первая автоматически созданная форма. У тебя первая - fUsers. И когда она закрывается, соответственно закрывается и программа.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
&-ray
Дата 8.5.2003, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 15.4.2003
Где: Казахстан, г Аста на

Репутация: нет
Всего: нет



Project -> Options -> Forms -> MainForm (выбери из списка fmain)
А вместо Application.Terminate подставь Halt (по-моему так будет более корректно, так как ты закрываешь приложение на стадии инициализации)


--------------------
"Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б.

--------------------
И снова мышь беру я в руки
Куда иду? - Конечно в сруки!
PM MAIL WWW   Вверх
*^angel^*
Дата 10.5.2003, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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 как главная форма.
Что еще я криво написАла?
PM MAIL ICQ   Вверх
Song
Дата 11.5.2003, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Код

Begin
With Application Do
 Begin
  Initialize;
  With TFUsers.Create(nil) Do
   try
    CreateForm(TfMain, fMain);
    ShowModal;
    IF ModalResult<>mrOk then Abort;
    Run;
   finally
    Free;
   end;
End.





--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Dayana
Дата 11.5.2003, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: 2
Всего: 4



Может у тебя ошибка при проверке логина и пароля? Т.е. при нажатии на кнопке
Ok всегда выходит с ModalResult = 2.... Покажи код, что происходит при нажатии кнопки Ok.
PM MAIL ICQ   Вверх
*^angel^*
Дата 11.5.2003, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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;
PM MAIL ICQ   Вверх
*^angel^*
Дата 11.5.2003, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



Song куда это вставлять надо?
PM MAIL ICQ   Вверх
neutrino
Дата 11.5.2003, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



А ModalResult надо на кнопки назначать. Ты назначила?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Song
Дата 11.5.2003, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Цитата
Song куда это вставлять надо?

В dpr


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Song
Дата 11.5.2003, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Цитата
Dayana да, именно так: "всегда выходит с ModalResult = 2" не знаю почему. код, к-ый обрабатывается при нажатии на ОК (в форме авторизации)...

Потому что этот код у кнопки btnOK в ModalResult. Ты когда тип кнопки назначала (с зелёной галочкой наверно), ModalResult у тебя назначился самостоятельно.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
*^angel^*
Дата 11.5.2003, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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;
PM MAIL ICQ   Вверх
*^angel^*
Дата 11.5.2003, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



Цитата(Song @ 11.5.2003, 02:48)
Ты когда тип кнопки назначала (с зелёной галочкой наверно), ModalResult у тебя назначился самостоятельно.

ничего такого не было. у меня кнопки ОК и ОТМЕНА - обычные кнопки, а не TBitBtn:

btnOK: TButton;
btnCancel: TButton;


PM MAIL ICQ   Вверх
Song
Дата 11.5.2003, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Посмотри их ModalResult


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
*^angel^*
Дата 11.5.2003, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



Song вот такие:
btnOK.ModalResult := mrOk; - 1
btnCancel.ModalResult := mrCancel; - 0
PM MAIL ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.