Форум: "Основная";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
ВнизЕсть ли альтернатива у Sleep и Exit? Найти похожие ветки
← →
Reaktor (2007-04-13 12:44) [0]Обаружилось одно неудобство. Если Sleep продолжительный, то прога зависает конкретно и не дает даже свернуть окно самой программы (неговоря уже о работе с компонентами). Есть ли вариант, как сделать так, что бы программа заснула, но при этом можно было бы работать с ее окном и компонентами?
И еще вопрос. Есть ли альтернатива Exit, такая, что бы выход осуществлялся не из вызывающей процедуры, а из всей программы целиком?
← →
homm © (2007-04-13 12:50) [1]> Есть ли альтернатива Exit, такая, что бы выход осуществлялся
> не из вызывающей процедуры, а из всей программы целиком?
Halt;
← →
Сергей М. © (2007-04-13 12:51) [2]А ты не вызывай Sleep(), тогда и "зависания" не будет)
> Есть ли альтернатива Exit
Да хоть отбавляй !)
Например, Application.Terminate, MainForm.Close, Halt (для экстремалов), ExitProcess (для них же) ...
← →
homm © (2007-04-13 12:52) [3]> Есть ли вариант, как сделать так, что бы программа заснула,
> но при этом можно было бы работать с ее окном и компонентами?
Открою тебе секрет: поведением компонентов программы управляет (о ужас…) программа! Если она заснет, компонентами управлять станет некому.
← →
homm © (2007-04-13 12:55) [4]> Например, Application.Terminate, MainForm.Close, Halt (для
> экстремалов), ExitProcess (для них же) ...
Зато для вызова первых 2-х нужно существование этих самых Application и MainForm :)
← →
Elen © (2007-04-13 12:57) [5]
> ExitProcess (для них же)
Ну эт еще гуманно, но вот TerminateProcess...!
← →
Юрий Зотов © (2007-04-13 12:58) [6]> Reaktor (13.04.07 12:44)
Подумайте сами: если программа "спит" (то есть, ничего не обрабатывает), то как можно с нею работать?
Поэтому в самой постановке вопроса уже есть противоречие и на такой вопрос ответ может быть только один - никак.
Есть много вариантов сделать так, чтобы программа чего-то дожидалась, но при этом юзер мог с нею работать (Application.ProcessMessages, второй поток, MsgWaitForMultipleObjects). Но чтобы ответить конкретно, нужно уточнить вопрос - чего именно программа должна дождаться?
← →
Belorus © (2007-04-13 22:09) [7]Удалено модератором
← →
homm © (2007-04-13 22:58) [8]Удалено модератором
← →
S@shka © (2007-04-13 23:55) [9]
> Есть ли вариант, как сделать так, что бы программа заснула,
> но при этом можно было бы работать с ее окном и компонентами?
>
1. использовать потоки
2. использовать ttimer
3. proceduere GoodSleep (Sleep_ :Integer);
var i : Intger;
begin
sleep_ := sleep div 100;
for i := 1 to sleep_ do
begin
sleep (100);
Application.processmessage;
end;
end;
← →
Reaktor (2007-04-14 22:52) [10]Позор мне. До последнего (3) мог бы и сам догадаться.
А чем halt плох?
← →
{RASkov} (2007-04-14 23:12) [11]> А чем halt плох?
Initiates abnormal termination of a program.
Промт говорит:
Начинает неправильное завершение программы. ;)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.051 c