Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-78971
GrYRI
2003-11-14 15:06
2003.11.24
Траблы с фор ду или с руками.


4-79220
Wizard_Ex
2003-09-29 17:43
2003.11.24
Нужно выдрать иконку MDIChild окна


1-79039
Vitalik
2003-11-12 21:33
2003.11.24
Package?


4-79234
plyaznik
2003-09-28 02:07
2003.11.24
Как реализовать Application.ProcessMessages на WinApi?(-)


1-78980
Neonsunlight
2003-11-12 22:04
2003.11.24
Webbrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский