Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
2-1147939972
elena_pp
2006-05-18 12:12
2006.06.04
Как узнать и записать версию exe-ника в строковую переменную?


15-1146794862
Думкин
2006-05-05 06:07
2006.06.04
Переселение


1-1146169429
delphi-oracle
2006-04-28 00:23
2006.06.04
Как поворачивать скролл


2-1148119967
tytci2007
2006-05-20 14:12
2006.06.04
Как упаковать в 6 байт дату и время


2-1147951248
Creative
2006-05-18 15:20
2006.06.04
wm_char





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский