Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
ВнизКак закрыть приложение ??? Найти похожие ветки
← →
-=[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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c