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

Вниз

Есть ли альтернатива у 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.035 c
15-1179152262
denis24
2007-05-14 18:17
2007.06.10
сохранение настроек IDE


2-1179498674
Saposo
2007-05-18 18:31
2007.06.10
Проблемы с отображением шрифтов


3-1174904351
-=alive=-
2007-03-26 14:19
2007.06.10
Обьеденить поля


2-1179461946
zsv
2007-05-18 08:19
2007.06.10
StringGrid


2-1179794600
Riply
2007-05-22 04:43
2007.06.10
Объявление variant Record.