Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.03.2011, 21:06
arach arach вне форума
Прохожий
 
Регистрация: 17.06.2010
Сообщения: 39
Репутация: 10
По умолчанию Подвисание форме при слипе! [HELP]

сабж, есть процедура отправки icq сообщения:

PHP код:
procedure Tform1.ICQMessage(SenderTObjectMsgUINString);
begin
 inc
(get);
 
sleep(1000);
 
ICQ.SendMessage(StrToInt(UIN), 'Testing TimeOut ^_^');
end

Дело в том, что при вызывании слипа форма приложения виснет на время этого самого слипа (в данном случае 1 секунда). Можно ли как-то избежать этого? Выносил всю работу в отдельный поток - итог тот же, ибо слипа не может быть в экзекуте.
Ответить с цитированием
  #2  
Старый 21.03.2011, 21:09
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Да хоть так.
Код:
procedure Delay(const AMilliseconds: Cardinal); 
var 
  SaveTickCount: Cardinal; 
begin 
  SaveTickCount := GetTickCount; 
  repeat 
    Application.ProcessMessages; 
  until 
    GetTickCount - SaveTickCount > AMilliseconds; 
end;
Вместо sleep.
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 21.03.2011, 21:26
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

а если тебе постоянно надо так вот будет делать задержку то таймер используй
Ответить с цитированием
  #4  
Старый 21.03.2011, 21:29
arach arach вне форума
Прохожий
 
Регистрация: 17.06.2010
Сообщения: 39
Репутация: 10
По умолчанию

Задержка нужна постоянно, использовать таймер - невозможно. Точнее возможно, форма не подвисает, но я не могу в нем прописать, что UIN - это именно переменная входящего сообщения. А если городить через присваивание переменных - оно получается и работает, но если напишут одновременно 2 человека на этот номер - то 1 номер перезапишет другой и не получится..
Ответить с цитированием
  #5  
Старый 21.03.2011, 21:32
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

ты не случаем задержку к боту делаешь? я например в боте делал задержку через таймеры, все отлично работает
Ответить с цитированием
  #6  
Старый 21.03.2011, 21:51
arach arach вне форума
Прохожий
 
Регистрация: 17.06.2010
Сообщения: 39
Репутация: 10
По умолчанию

менно задержка на отправку сообщения! Можешь показать пример работы с таймером в боте?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025