Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2011, 22:19   #21
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Хороший вопрос учитывая что

А еще у меня вопрос - как ты умудрился замерить задержку? Неужели код внутри представленной процедуры так долго выполняется?

P.S. Хотя думаю ответ на этот вопрос заключается в твоей procedure Delay(dwMilliseconds: Longint);
мерил задержку? ты о чем? В том то и дело, что код выполняется очень быстро и чтобы прога не зависала мне нужно сделать задержку между отсыланиями клавиш.

PostMessage function places (posts) a message in the message queue associated with the thread that created the specified window and then returns without waiting for the thread to process the message.
Здесь пост и сенд месаги по-моему не при чем, ведь меня интересует отправка в разные окна, а не в одно

Цитата:
У вас рекурсия, вторая никогда не закончит выполнение.
я привел лишь пример, в оригинале процедуры завершаются при определенном условии

Цитата:
Как бы по-проще выразиться... Вызов Application.ProcessMessages в процедуре Delay заставляет программу проверить наличие других комманд от пользователя и выполнить их, и только тогда продолжить дальнейшее выполнение процедуры. Т. е. вы жмете кнопку 1, запускается код, который никогда не завершится, но периодически проверяет команды от пользователя. Тут приходит команда - жать кнопку 2. Код кнопки 1 останавливается, чтоб выполнить код 2. Но код 2 также уходит в рекурсию и не возвращает управление коду 1...
Спасибо за доходчивое объяснение. Получается, что процедура delay лучше слипа только тем, что прога не подвисает, и Application.ProcessMessages для, например, задержки на точно определенное время не годится (т.к. может вызваться другая процедура).

Я юзал delay только для того, чтобы прога не подвисала во время отсылания клавиш, а получается, что в это время ее может выхватить другая процедура и не отдавать работу, пока сама не выполнится.
Подытожу:
Есть ли какой-либо аналог задержки, который не занимает процессор как приведенная delay, а который просто останавливает функцию на определенное время (т.к. все что мне нужно это сделать задержки между отсыланием клавиш просто чтобы прога не зависала)? потоки?

Последний раз редактировалось Pamparam; 25.09.2011 в 22:31.
Pamparam вне форума Ответить с цитированием
Старый 25.09.2011, 22:39   #22
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

а чем тебя не устраивает код предложенный мной? он прикрасно отсылает сообщение одновременно в разные окна
fate вне форума Ответить с цитированием
Старый 25.09.2011, 22:54   #23
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Цитата:
Сообщение от fate Посмотреть сообщение
а чем тебя не устраивает код предложенный мной? он прикрасно отсылает сообщение одновременно в разные окна
биг спасибо, пробнул, отсылает параллельно, буду юзать. Но все же... альтернативы слипа с потоком для описанной проблемы нет?

Последний раз редактировалось Pamparam; 25.09.2011 в 22:57.
Pamparam вне форума Ответить с цитированием
Старый 19.09.2012, 12:36   #24
morph81
Новичок
Джуниор
 
Регистрация: 27.01.2011
Сообщений: 1
По умолчанию

Может заглянет кто. Интересует подобный вопрос. На форме есть две кнопки, при нажатии на каждую создаются, отслеживаются потоки (для абсолютно разных задач).
Естественно при нажатии последовательно, исполнение кода в первой останавливается. Собственно вопрос, можно ли добиться одновременного выполнения двух процедур. А то очень не хочется всеми потоками управлять в одном цикле.
morph81 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 действия одновременно Mr_skiner Общие вопросы Delphi 10 14.05.2011 09:40
одновременное выполнение разных процедур в одном файле? gramp Microsoft Office Excel 15 25.03.2011 12:15
последовательное выполнение процедур в макросе iamaxl Microsoft Office Excel 4 07.07.2009 16:23
Псевдопараллельное выполнение процедур (Потоки) delphin100 Общие вопросы Delphi 4 10.04.2009 20:16