![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
JetBird |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
Привет всем!
Наверное, ламерский вопрос задаю, т.к. в Дельфи мало программировал; суть вот какая: есть такой метод Application.Run, который передает управление в вечный цикл, позволяя приложению обрабатывать сообщения и т.д. Меж тем, в Дельфях все ориентировано на использование событий. Т.е. по нажатию кнопки возникает то, по приему пакета - сё. А если я желаю "вклиниться" в основной поток и добавить в него свой код? есть такая штука, как OnTimer, но она включается раз в N микросекунд, а мне бы надо, чтобы на каждом "шаге" выполнялась некоторая процедура. Как бы это сделать? |
|||
|
||||
Rrader |
|
|||
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 70 Всего: 191 |
Пройдясь по петле, можно найти такую строчку:
P.S. Зачем нужно вклиниваться? |
|||
|
||||
vladimir74 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 28.11.2006 Репутация: нет Всего: 3 |
внутри цикла
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ. |
|||
|
||||
JetBird |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
О, спасибо, Application.ProcessMessages - то, что надо. Вклиниваться в самом деле незачем.
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Или новички шибко умные пошли, или я отупел. Но никогда бы не догадался, что в первом сообщении спрашивалось о ProcessMessages.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Christoph |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 667 Регистрация: 23.1.2008 Где: Харьков Репутация: 1 Всего: 11 |
Ответ Application.ProcessMessages дали на угад ![]() -------------------- ![]() |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
ОФФ
просто vladimir74 - телепат! -------------------- Кольцов Виктор Владимирович |
|||
|
||||
JetBird |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
Ну-ну, зря вы так, товарищи
![]() ProcessMessages решает данную проблему простейшим способом, и хотя вопрос был задан в общей форме, а ответ решает проблему лишь частично (например, если на форме будут 2 кнопки и в каждой будет цикл с processmessages, то при нажатии первой, а потом второй (во время работы цикла первой) нужный код будет выполняться не параллельно, а последовательно - сначала закончится цикл второй, а потом - первой), и тут, вероятно, помог бы совет "пройтись по петле и найти строчку с if (assigned(...))", чтобы сделать выполнение нужного кода в принципе независимым от внешних "возбудителей", не прерывать основной поток, а плавно в него интегрироваться. |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
JetBird, слушай, если ты все знаешь, то тему зачем создал?
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
vladimir74 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 28.11.2006 Репутация: нет Всего: 3 |
ну этот форум не единственный, а вопросы везде повторяются ![]() бывают просветления в мозгУ ![]() ![]()
ну какой вопрос,такой ответ (это кстати подтверждает моя подпись ![]() можно засунуть каждый цикл в отдельный поток... ![]() Добавлено через 57 секунд ну есть такая буква в этом слове ![]() --------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ. |
||||
|
|||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
и это будет, имхо, самое правильное решение ![]() -------------------- There are always someone smarter than you... |
|||
|
||||
vladimir74 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 28.11.2006 Репутация: нет Всего: 3 |
вот теперь если я опять телепатнул, то буду не единственный. И притом при поддкржке старичков ![]() ![]() MetalFan, извени но мне почему то фраза Poseidon-а очень понравилась --------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ. |
|||
|
||||
JetBird |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
||||
|
||||
vladimir74 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 28.11.2006 Репутация: нет Всего: 3 |
начинаю задаваться тем же вопросом..... --------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ. |
|||
|
||||
JetBird |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
||||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
странное заявление. а что в этом сложного? -------------------- There are always someone smarter than you... |
|||
|
||||
JetBird |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
||||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
ага, проще свалить все в кучу в главный поток и понавставлять ProcessMessages'ов -------------------- There are always someone smarter than you... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |