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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.10.2009, 04:04
vbn vbn вне форума
Прохожий
 
Регистрация: 14.10.2009
Сообщения: 1
Репутация: 10
По умолчанию Как дождаться завершения процедуры?

Есть процедура, которая многократно выполняется в головной программе:
Код:
procedure mEmDmU(i,j: Cardinal);
begin

SetCursorPos(i,j);
Mouse_Event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
Mouse_Event(MOUSEEVENTF_LEFTUP,0,0,0,0);

end;
Проблема в том, что при многократных вызовах иногда не успевают обработаться или вовсе не обрабатываются процедуры SetCursorPos, Mouse_Event.
Помогает вставка процедуры Sleep(X), но на разных компьютерах и при разной загрузке процессора это X может быть меньше или больше, а время работы программы очень нужно сократить, и минимальное оптимальное X неизвестно.

Application.ProcessMessages - не помогает.

5 часов копался в интернете, так и не понял. Запутался в этих процедурах WaitForInputIdle, SleepEx, WaitForSingleObject, GetQueueStatus и т.д. Что же здесь может помочь, чтобы заставить эти процедуры выполняться последовательно, без неразберихи? И неужели без потоков решить проблему не удастся? Это что же, на каждый Mouse_Event теперь поток создавать?
Ответить с цитированием
  #2  
Старый 19.10.2009, 12:41
Аватар для Vlad55
Vlad55 Vlad55 вне форума
Прохожий
 
Регистрация: 17.10.2009
Сообщения: 17
Версия Delphi: Delphi XE
Репутация: 10
По умолчанию

Зачем на каждый? Один на твою процедуру и создать собственное событие для потока...чё-нить типо
Код:
TOnFinalMyProc = procedure of object;
и обрабатывать всё, что надо по этому событию
__________________
Delphi в Internet - блог о программировании. Малоизвестные и редко обсуждаемые темы программирования на Delphi
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter