Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.29;
Скачать: CL | DM;

Вниз

Как запаролить MDI приложение?   Найти похожие ветки 

 
forrest   (2003-05-20 12:39) [0]

Всем привет!
Вопрос до безобразия примитивный, но как выкарабкаться не придумал.
Создаю обыкновенное MDI-приложение, но форма MainForm (fsMDIForm) у меня НЕ главная в проекте(Project->Options
->Forms -> MainForm). Главной является форма идентификации пользователя - запрос логина и пароля. Если пароль и логин верный, то поднимается MainForm (fsMDIForm). Теперь если я вызываю из MainForm какую-нибудь ChildForm (fsMDIChild), то возникает ошибка типа "Not active MDI form".
Вопрос: Как сделать так, чтобы поднималась сначала форма идентификации пользователя, а потом главная форма MDI-приложения и из неё без помех можно было вызывать все дочерние окна?
Может кто посоветует какой- нибудь другой подход?

Большое спасибо за внимание и всем откликнувшимся.


 
Skier ©   (2003-05-20 12:49) [1]

>forrest (20.05.03 12:39)
Не создавать "форму идентификации пользователя" через
Application.CreateForm(...).

Через Application.CreateForm(...) создавать главную форму, чтобы
проинициализировать Application.MainForm.


 
forrest   (2003-05-20 12:52) [2]

Согласен. Пробовал. а что дальше?
Если я пишу Application.CreateForm(...) она сразу появляется на экране, а делать Hide не даёт.


 
Юрий Федоров ©   (2003-05-20 13:00) [3]

Можно:
В конструкторе главной формы создать диалог идентификации, в случае неудачи проверки пароля поднять Exception (если не нужно светить сообщение об ошибке, то abort)


 
Skier ©   (2003-05-20 13:00) [4]

>forrest (20.05.03 12:52)
Обычно проверка пользователя делается в теле dpr-файла, т.е :

var
AUserCheckForm : TUserCheckForm;
begin
AUserCheckForm := TUserCheckForm.Create(...);
try
if {"плохой" юзверь} then Exit;
finally
AUserCheckForm.Free;
end; //try
//Application.CreateForm(...) создание основной формы...и т.д.
end.


 
forrest   (2003-05-20 13:07) [5]

> Юрий Федоров: По поводу конструктора: не пробовал. Попробую.
Спасибо за идею.
> Skier: Что-то подобное я делал. Но не получилось. Попробую сделать так как предложили. Application.Run вызывать в конце?
После всего?


 
Skier ©   (2003-05-20 13:09) [6]

//.....проверка пользователя........
Application.CreateForm(TMainForm, MainForm);
Application.Run;


 
forrest   (2003-05-20 13:11) [7]

> Skier: Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2003.05.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
14-95086
Stvaffniy
2003-05-11 01:09
2003.05.29
S dnem materi! 11 maya.


1-94909
prof
2003-05-17 11:54
2003.05.29
копирование файлов


14-95097
Dimaz-z
2003-05-11 16:45
2003.05.29
Как уменьшить размер exe шника без штук, типа UPX, KOL,...


3-94771
stkatch
2003-05-12 11:32
2003.05.29
Установка значения generator


3-94774
Eugenex
2003-05-08 19:09
2003.05.29
Invalid table name ??????