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

Вниз

Application.terminate а программа продолжает работать   Найти похожие ветки 

 
Tempora   (2006-05-18 09:53) [0]

Есть процедура Form1.OnShow внутри которой код:
.....
if DirectoryExists(ini.ReadString("Local","loc_path","c:"))= false then begin
Application.MessageBox(
       "Локальная папка не существует.",
       "Ошибка",
       MB_OK + MB_ICONERROR);
application.Terminate;
end;
........что-то дальше
Я знаю что directoryExists точно должно вернуть false, оно и возвращает это и выводит сообщение об ошибке, но работа программы продолжается, идет выполнение команд которые указаны после этого условия.
Пожалуйста, подскажите, что это?


 
Сергей М. ©   (2006-05-18 10:03) [1]

после Application.Terminate напиши Application.ProcessMessages


 
ЮЮ ©   (2006-05-18 11:00) [2]

поместить этот код в dpr.
Зачем созавать форму и уже в OnShow решать, что это было ошибкой?


 
Tempora   (2006-05-18 11:59) [3]


> после Application.Terminate напиши Application.ProcessMessages

Не помогает.


 
Сергей М. ©   (2006-05-18 12:02) [4]


> Tempora   (18.05.06 11:59) [3]


Ну и выбрось тогда из головы эту затею.

А для новой затеи прислушайся к [2]


 
ЮЮ ©   (2006-05-18 12:05) [5]

Кстати, такое работает как раз в OnShow:

 Tester.Streamer.LoadToStringList(sl, "Marks.ini");
   if sl.Count = 0 then begin
     Application.MessageBox(
       PChar("Не найден файл параметров " + Tester.Streamer.ZipName  + "\" +
         "Marks.ini"),
       "Ошибка инициализации", 0
     );
     Close;
   end;


 
Сергей М. ©   (2006-05-18 12:10) [6]


> ЮЮ ©   (18.05.06 12:05) [5]


Это если форма - основная.
А у автора неизвестно какая


 
ASoft   (2006-05-18 12:14) [7]


> идет выполнение команд которые указаны после этого условия.

Если не хотите, чтобы в теле процедуры продолжалось условие после application.Terminate поставьте :
...
begin
Application.Terminate;
Exit;
end;


но, возможно, правильнее будет [2]


 
Tempora   (2006-05-18 12:27) [8]


> begin
> Application.Terminate;
> Exit;
> end;

Спасибо, работает.
Всем спасибо за советы. В следующий раз буду так и делать.



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

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

Наверх




Память: 0.48 MB
Время: 0.044 c
15-1146900767
worldmen
2006-05-06 11:32
2006.06.04
Регистрация почтового ящика на fastmail.fm


3-1142429352
Emik
2006-03-15 16:29
2006.06.04
FIBPlus Tools


15-1147236828
Ega23
2006-05-10 08:53
2006.06.04
С Днём рождения! 10 мая


15-1147110984
dimodim
2006-05-08 21:56
2006.06.04
ARP Где найти полную информацию по Арп"у для сетей


2-1148047662
xVx
2006-05-19 18:07
2006.06.04
Listbox ввиде greed