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

Вниз

Подскажите, где поставить проверку...   Найти похожие ветки 

 
NY152   (2002-01-15 09:59) [0]

Где поставить проверку и как чтобы при старте программы при неправильном введении кода программа бы не запускалась ?
Я попробовал на событие "onCreate" главной формы, но если ставишь там оператор "close" программа всё равно запускается =(((
Спасибо...


 
Turalyon ©   (2002-01-15 10:06) [1]

Поствь close на событие FormShow.


 
Владислав ©   (2002-01-15 10:30) [2]

В обработчике OnCreate:
Application.Terminate


 
kserg@ukr.net   (2002-01-15 12:33) [3]


У меня сделано как советует >Владислав:
в OnCreate после проверок вывожу сообщение юзеру
о том, что "лезет" без нужных прав, а затем
Application.Terminate обрывает загрузку проги,
но вот только главная форма всё равно дёргается
(что-то на экране мелькает).
Как это побороть?


 
AlexSV   (2002-01-15 12:36) [4]

Лучше всего в модуле проекта .dpr:

program Project1;

uses
Forms,
fLogin in "fLogin.pas" {LoginForm},
fMain in "fMain.pas" {MainForm},
// остальные модули ...,
;

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(TLoginForm, LoginForm);
if LoginForm.ShowModal = mrOK then begin
Application.CreateForm(TMainForm, MainForm);
// остальные модули ...,
Application.Run;
end else
Application.Terminate;
end.

Приблизительно так.
Писал с листа, так что если где не так, то пиши на Mail, подскажу.


 
Владислав ©   (2002-01-15 12:54) [5]

> kserg@ukr.net (15.01.02 12:33)

но вот только главная форма всё равно дёргается
(что-то на экране мелькает).


Application.ShowMainForm:=False;
Application.Terminate


 
kserg@ukr.net   (2002-01-15 13:10) [6]

>Владислав - спасибо за совет


 
olban ©   (2002-01-15 14:53) [7]

Не надо никаких Terminate, Это все равно, что ломать что-нибудь.
Все правильно, в модуле проекта создаем свою форму, типа проверки пароля, запускаем и проверяем результат. Если нас все удовлетворяет, то создаем основную форму и запускаем приложение, иначе не надо ничего делать, программа сама закроется, так как выполнять больше нечего. В примере выше надо просто еще сделать LoginForm.Free в любом случае, чтобы освободить от него память. Все


 
Boris ©   (2002-01-15 18:21) [8]

olban прав!

Я делаю следующим образом:

program KurtLaukel;

uses
Forms,
LaukelLagerstand in "LaukelLagerstand.pas" {fMainForm},
SetUser in "SetUser.pas" {fUser},

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(TfUser, fUser);
Application.CreateForm(TfMainForm, fMainForm);
Application.Run;
end.

В проекте первой появляется форма fUser
пользователь вводит свои аттрибуты. Проверяем.
если все окей то

fUser.Visible:=False; //просто ее с глаз долой
fMainForm.Show; //никаких терминате

если нехороший человек то просто

fUser.close

При окончании работы честным человеком. В модуле fMainForm
закрыть fUser

procedure TfMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
fUser.Close;
end;

И ВСЁ!!!!!!



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

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

Наверх




Память: 0.48 MB
Время: 0.007 c
4-9024
Leviathan
2001-12-07 15:24
2002.02.04
Разрешение экрана


1-8873
Turalyon
2002-01-15 09:44
2002.02.04
Динамические объекты


1-8841
xmapa
2002-01-16 08:49
2002.02.04
Quick Report: группировка


1-8927
MystiX
2002-01-17 16:59
2002.02.04
Помогите!!!


1-8822
Аркадий
2002-01-20 00:27
2002.02.04
Физические и логические диски