Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Помощь в Дельфях new!
Посл.ответ Сообщение


Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 06 октября 2006 06:26
· Личное сообщение · #1

Всем привет!
Проблема
на событие OnShow проверяю существование баз данных
и если их нет то мне надо завершить прогу
а на этом событии вываливается ругательная месага
мно что пробовал даже halt не помогает
если что-то мжно сделать подскажите пожалуйста!
Заранее спасибо!



Ранг: 18.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 06 октября 2006 06:33
· Личное сообщение · #2

какие базы, какое сообщение, как звершаешь программу ?



Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 06 октября 2006 06:49
· Личное сообщение · #3

NicknamES, заюзай IOResult. Правда не помню есть ли оно в Делфи, но в Паскале всегда пользовался.

-----
Blame the victim!




Ранг: 103.1 (ветеран), 3thx
Активность: 0.070.01
Статус: Участник

Создано: 06 октября 2006 07:10
· Личное сообщение · #4

А как ты проверяешь наличие базы данных? подключением к ней? тогда смотри эксепшены по этой базе или просто всунь кусок кода в try...finaly, если проблема с процедурой выхода юзай Application.Terminate;

-----
Crack your mind, save the planet




Ранг: 110.7 (ветеран)
Активность: 0.070
Статус: Участник
~ tPORt ~

Создано: 06 октября 2006 07:53
· Личное сообщение · #5

Styx
хехе try except здесь втему в не finally




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
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.040
Статус: Участник

Создано: 06 октября 2006 13:36
· Личное сообщение · #7

не народ
не в том дело,
проблема в том что я не могу завершить прогу из
события OnShow главной формы
хотя очень надо



Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 06 октября 2006 13:49
· Личное сообщение · #8

Application.Terminate

-----
Blame the victim!




Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 06 октября 2006 13:49 · Поправил: Veliant
· Личное сообщение · #9

ExitProcess(0);
или
Application.Terminate;

P.S. Опередил =)



Ранг: 9.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 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.040
Статус: Участник

Создано: 03 ноября 2006 21:05
· Личное сообщение · #11

всё, спасибо ExitProcess подошёл,
а кто меня всё же не понял пусть попробует осуществить выход из гланой формы во время собыия OnShow



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 03 ноября 2006 23:55
· Личное сообщение · #12

NicknamES пишет:
ExitProcess подошёл,

Конечно, ExitProcess "подчищает хвосты" от задачки, но наверняка не все. Т.е. если эту прогу будут вызывать раз 100 в день, то лучше все-таки выходить нормально, а не аварийно из середины.
По нормальному, надо в OnShow установить флаг/событие, а в цикле обработки событий его проверять.


 eXeL@B —› Программирование —› Помощь в Дельфях new!
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати