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

Вниз

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

 
-=[SDA]=- ©   (2003-11-14 10:28) [0]

Задача: Проверить связь с сервером БД до запуска приложения. Так вот, решил перекрыть конструктор главной формы так:

constructor TForm1.Create(Owner: TComponent);
var db_ : TDataBase;
begin
db_ := tDatabase.Create(Application);
with db_ do
begin
AliasName := "GDC_tr";
DatabaseName := "ssssss";
keepConnection := True;
LoginPrompt := False;

Params.Values["USER NAME"] := "sa";
Params.Values["PASSWORD"] := "";
try
Connected := True;
except
on E: Exception do
begin
db_.free;
showmessage("Нет связи с БД " +^M+E.Message);
//?????????????????????????
end;
end;
end;
inherited Create(Owner);
end;


А вот как закрыть приложение в месте с "вопросиками" не знаю, или может есть ещё какой-нибуть способ завершить работу???
Буду рад и благодарен, если кто поможет !!! :-)


 
Ru ©   (2003-11-14 10:32) [1]

А почему нельзя проверить после запуска (OnShow) и в случае неудачи (отсутствия сервера) поматюкаться по этому поводу?


 
-=[SDA]=- ©   (2003-11-14 10:39) [2]

{Ru}
Пока сильно не разбирался с этой прогой, но на ней много Querey, которые цепляются к DataBase на главной форме и коннектятся в OnCreate, так что если нет доступа к БД, то прога виснет на ConnectTimeOut (из BDE), а потом всё равно открывается, но с пустыми Grid"ами, вот. Но идея неплохая, щас попробую установить connect в OnShow, а там проверить.


 
Плохиш_   (2003-11-14 10:40) [3]

>-=[SDA]=- © (14.11.03 10:28)

А почему бы не сделать это в OnCreate?

А ответ: Application.Terminate


 
Ru ©   (2003-11-14 10:42) [4]

>-=[SDA]=- © (14.11.03 10:39) [2]

я бы всё перенёс из OnCreate в OnShow и запускал бы только после положительного результата проверки подключения.


 
Stas ©   (2003-11-14 10:46) [5]

HALT


 
Романов Р.В. ©   (2003-11-14 10:51) [6]

program Project1;

uses
Forms,
Unit1 in "Unit1.pas" {Form1};

{$R *.res}

begin
Application.Initialize;
if Проверка чего-либо then
begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
ShowMessage("Приложение не может быть запущено...");
end.


 
-=[SDA]=- ©   (2003-11-14 10:54) [7]

[Всем]
C переносом из OnCreate в OnShow идея хорошая, но наверное делать не буду, разбираться неохото - там строк 1,5-2 тысячи, может только потом... как-нибудь
А с Application.Terminate и Halt"ом попробовал и интересная вещь получается: с Halt"ом раз в 10-15 быстрее, интересно, почему???


 
Плохиш_   (2003-11-14 10:57) [8]

>-=[SDA]=- © (14.11.03 10:54) [7]

Halt = выстрел из пистолета в висок
Application.Terminate = подождать нормального заверщения


 
Ru ©   (2003-11-14 10:59) [9]

>-=[SDA]=- © (14.11.03 10:54) [7]

попробуй сделать как говорит Романов Р.В. © (14.11.03 10:51) [6]

или сдалай процедуру в которую перенеси код из OnCreate, а в OnShow:
if XXX then ActiveBaseProc else begin
Showmessage(0,"Админ опять травы накурился.","Проблема",mb_ok);
Close;
end;

где ХХХ - проверка подключения


 
Stas ©   (2003-11-14 11:00) [10]

Halt - Аварийное завершение, возможно неосвобождает память.


 
-=[SDA]=- ©   (2003-11-14 11:05) [11]

>>Плохиш_ (14.11.03 10:57) [8]
>>Halt = выстрел из пистолета в висок
>>Application.Terminate = подождать нормального заверщения

:-))))))))))))) Круто сказал !!!!!
Это нужно записать в следующую [фразу дня]
Спасибо!


 
-=[SDA]=- ©   (2003-11-14 11:17) [12]

Всем ОГРОМНОЕ спасибо !!!
Мне тоже понравился вариант Романова Р.В., я так и сделал!
И проблем нет: не надо в прогу лезть, и легко: не надо голову ломать. Так что Романову отдельное спасибо!
Ну а Плохиш_ хорошую фразу выложил!
Супер!!!



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

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

Наверх




Память: 0.49 MB
Время: 0.026 c
3-78859
Max_
2003-11-03 13:31
2003.11.24
Oшибка ADOQuery и MDI?


3-78795
Disruptor
2003-11-05 12:33
2003.11.24
Как прервать цикл FOR SELECT


3-78823
licherep
2003-11-04 16:40
2003.11.24
помогите с фильтром


1-78920
Rradion
2003-11-12 14:33
2003.11.24
Алгоритм Бинарного Поиска - помогите плиз...


1-78892
tipman
2003-11-12 16:12
2003.11.24
xcng - обмен значений - есть ли аналог в Delphi?