Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
8-94972
maxfiles
2003-02-14 05:41
2003.05.29
rm


1-94864
pirat
2003-05-19 22:20
2003.05.29
Как загрузить и использовать xml файл через MSXML ?


4-95156
anton
2003-02-06 09:41
2003.05.29
Как можно прослушивать каталог на появление в нем файла


14-95037
miha po
2003-05-08 20:28
2003.05.29
Реклама в shareware версии AdvStringGrid


3-94770
alextov
2003-05-12 11:39
2003.05.29
Вертикально ориентированный отчет




   Наверх