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

Вниз

создание формы   Найти похожие ветки 

 
DimonNew ©   (2004-02-11 12:36) [0]

У меня вопрос. Я создал аналог функции InputQuery, с добавлением своих компонентов на форму для пароля и логина. Вызываю свою функцию в ADOConnection.OnWillConnect. А открываю ADOConnection в OnCreate главной формы. При не правильном пароле или логине или нажатии кнопки отмена уничтожаю главную форму, в результате она уничтожается, но она на короткий момент показывается. Неужели нужно делать форму с паролем главной, чтобы проверять пароль и логин до создания главной формы? Хотелось бы проверить пароль и логин до создания главной формы, чтобы в случае неудачи вообще не создавать ее. Помигите, пожалуйста.


 
Amoeba ©   (2004-02-11 12:39) [1]

Создавай и показывай ее в *.dpr, а в случае неудачи вызывай Application.Terminate.


 
DimonNew ©   (2004-02-11 12:41) [2]

Я как раз Application.Terminate и использую.


 
Юрий Федоров ©   (2004-02-11 13:21) [3]

вариант 1
Application.ShowMainForm:=False;
вариант 2
вызывай функцию "ааналог InputQuery" в *.dpr в самом начале до каких-либо других действий
Если что-то не так - просто по if обойди строки
Application.Initialize... Application.Run


 
Тимохов ©   (2004-02-11 13:24) [4]


> Application.Initialize

Ну это то лучше не обхоидить имхо.
Вот Application.run обойти - милое дело


 
Sandman25 ©   (2004-02-11 13:27) [5]

Application.Initialize;
// DataModule
Application.CreateForm(TdmDatabase, dmDatabase);
with dmDatabase do
begin
LoadIniStringsFromFile;
LoadAndSetConnectionParams;
// попытка соединения
if not Connect then
exit;
end;
Application.CreateForm(TFSprOperExe, FSprOperExe);
Application.Run;
end.

....
function TdmDatabase.Connect(TerminateApplication: boolean = true): boolean;
begin
repeat
try
TryConnect;
except
on E:ECancelledConnectionException do
begin
if TerminateApplication then
Application.Terminate;
Result := false;
exit;
end;
on E:Exception do
begin
Application.MessageBox(PChar(E.Message),
sConnectionErrorCaption, MB_ICONERROR);
if TerminateApplication then
Application.Terminate;
Result := false;
exit;
end;
end;
until Connection.Connected;
Result := True;
end;

procedure TdmDatabase.TryConnect;
begin
with Connection do
begin
Close;
Open;
end;
end;

// OnLogin
procedure TdmDatabase.ConnectionLogin(Database: TSQLConnection;
LoginParams: TStrings);
begin
if not GetLoginParams(LoginParams) then
begin
raise ECancelledConnectionException.Create("");
end;
end;


 
DimonNew ©   (2004-02-11 14:46) [6]

Спасибо!



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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
1-79718
Aligator
2004-02-12 17:12
2004.02.25
Организация запуска программы по рассписанию (напр. раз в месяц)


1-79866
staryx
2004-02-06 11:59
2004.02.25
Меню а-ля


14-80242
able
2004-02-03 16:20
2004.02.25
Задержка.


1-79722
Senator
2004-02-12 16:59
2004.02.25
ComboBox


14-80144
andreytha@nm.ru
2004-02-04 05:52
2004.02.25
Как стать сертифицированым специалистом за 5 минут