Посл.ответ |
Сообщение |
Ранг: 81.2 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 06 октября 2006 06:26 · Личное сообщение · #1
Всем привет!
Проблема
на событие OnShow проверяю существование баз данных
и если их нет то мне надо завершить прогу
а на этом событии вываливается ругательная месага
мно что пробовал даже halt не помогает
если что-то мжно сделать подскажите пожалуйста!
Заранее спасибо!
| Сообщение посчитали полезным: |
|
Ранг: 18.7 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 06 октября 2006 06:33 · Личное сообщение · #2
какие базы, какое сообщение, как звершаешь программу ?
| Сообщение посчитали полезным: |
Ранг: 123.7 (ветеран) Активность: 0.1↘0 Статус: Участник 1nn0$/100
|
Создано: 06 октября 2006 06:49 · Личное сообщение · #3
NicknamES, заюзай IOResult. Правда не помню есть ли оно в Делфи, но в Паскале всегда пользовался.
----- Blame the victim! | Сообщение посчитали полезным: |
Ранг: 103.1 (ветеран), 3thx Активность: 0.07↘0.01 Статус: Участник
|
Создано: 06 октября 2006 07:10 · Личное сообщение · #4
А как ты проверяешь наличие базы данных? подключением к ней? тогда смотри эксепшены по этой базе или просто всунь кусок кода в try...finaly, если проблема с процедурой выхода юзай Application.Terminate;
----- Crack your mind, save the planet | Сообщение посчитали полезным: |
Ранг: 110.7 (ветеран) Активность: 0.07↘0 Статус: Участник ~ tPORt ~
|
Создано: 06 октября 2006 07:53 · Личное сообщение · #5
Styx
хехе try except здесь втему в не finally
| Сообщение посчитали полезным: |
Ранг: 353.0 (мудрец) Активность: 0.37↘0 Статус: Участник resreveR
|
Создано: 06 октября 2006 08:38 · Поправил: lord_Phoenix · Личное сообщение · #6
1nn0cent пишет:
IOResult
есть - директивы I.. try except тож заюзать можно
AssignFile(f, 'Solo.exe');
{$I-}
Reset(f);
{$I+}
if IoResult <> 0 then Messagebox(Win, 'An error ocured while opening file', 'Error', MB_OK);
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 81.2 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 06 октября 2006 13:36 · Личное сообщение · #7
не народ
не в том дело,
проблема в том что я не могу завершить прогу из
события OnShow главной формы
хотя очень надо
| Сообщение посчитали полезным: |
Ранг: 123.7 (ветеран) Активность: 0.1↘0 Статус: Участник 1nn0$/100
|
Создано: 06 октября 2006 13:49 · Личное сообщение · #8
Application.Terminate
----- Blame the victim! | Сообщение посчитали полезным: |
Ранг: 301.4 (мудрец), 194thx Активность: 0.17↘0.01 Статус: Участник
|
Создано: 06 октября 2006 13:49 · Поправил: Veliant · Личное сообщение · #9
ExitProcess(0);
или
Application.Terminate;
P.S. Опередил =)
| Сообщение посчитали полезным: |
Ранг: 9.9 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 07 октября 2006 00:40 · Поправил: st_slayer · Личное сообщение · #10
Не могу понять зачем тебе именно OnShow , я например всегда пользуюсь OnCreate:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
try
Table1.Active := False;
Table1.DatabaseName := (ExtractFilePath(Application.ExeName)+'data');
Table1.TableName := 'dbase';
Table1.Active := True;
except
on EDatabaseError do
begin
Application.MessageBox('Невозможно открыть базу данных.', 'Ошибка', MB_ICONERROR);
Halt;
end;
end;
| Сообщение посчитали полезным: |
Ранг: 81.2 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 03 ноября 2006 21:05 · Личное сообщение · #11
всё, спасибо ExitProcess подошёл,
а кто меня всё же не понял пусть попробует осуществить выход из гланой формы во время собыия OnShow
| Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 03 ноября 2006 23:55 · Личное сообщение · #12
NicknamES пишет:
ExitProcess подошёл,
Конечно, ExitProcess "подчищает хвосты" от задачки, но наверняка не все. Т.е. если эту прогу будут вызывать раз 100 в день, то лучше все-таки выходить нормально, а не аварийно из середины.
По нормальному, надо в OnShow установить флаг/событие, а в цикле обработки событий его проверять.
| Сообщение посчитали полезным: |