![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
![]()
За годы программирования на дельфи возник такой вопрос - почему если вызваит функцию сначала из одного места программы, а пока она работает из другого, то результат функции выйдет по второму запуску и в это же время и выйдет результат функции для первой, но равный второму?? Ладно, коряво объяснил, смотрите пример.
Имеется процедура delay, она делает паузу в программе без зависания(не как sleep) и две кнопки, на которых стоит задержка данной функцией и показ сообщения. Так вот, если нажать первую кнопку и, пока не завершилась функция, вторую, то сначала произойдёт событие второй кнопки и тут же первой (причём всё по времени задержки второй кнопки). Выкладываю код ниже Код:
[Ferox]
|
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Что-то монстроподобное... А что ты собсно хочешь сделать то?
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
![]()
Чтобы процедура задержки выполнялась из разных частей программы и не зависела от того, выполняется в данный момент она из другой части программы или нет
Может следует добавить override или что-то в этом роде?
[Ferox]
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
override
а вы смысла директивы этой незнаете чтоли? по коду...так вроде так все и должно быть. ибо задержки вполяются параллельно попробуйте проверить с разными задержками Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
![]()
В том то и дело, что нет. Нажмите на кнопку 1 и, пока время ещё тикает, на кнопку 2. Сначала покажется сообщение 2, а только потом 1..
application.ProcessMessages тут вообще ни при чём. Наверно.. Скажем так, продолжение темы
[Ferox]
Последний раз редактировалось postal2; 20.08.2009 в 18:21. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
ну мне пришла в голову одна идея....но это уже извращенный изврат..
написать свой диспетчер функций... Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
![]()
Мда.. А из стандартненького ничего нет?!
[Ferox]
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
хм...еще одна идея пришла...делать задержку на основе WMTimer
тогда должно быть все норм. кстати протестировал...по логике программы все верно...а знаете почему? Код:
![]() +в какой процедуре находится управление при нажатии первой а потом второй кнопки? во второй процедуре...именно поэтому сначало будет второе сообщение а не первое Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 215
|
![]()
Честно говоря не понял..
[Ferox]
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
что именно?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Последовательность выполнения процедур | lemeshev | Общие вопросы Delphi | 4 | 15.05.2009 20:33 |
использование процедур и функций! | ...Оленька... | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 24.12.2008 15:33 |
Глобальность функций и процедур | rivers | Общие вопросы Delphi | 5 | 01.08.2008 20:35 |
Параметры процедур и функций | shurik_7866 | Общие вопросы Delphi | 8 | 10.12.2007 19:49 |