Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не срабатывает TAction в цикле с ProcessMessages

286
03 сентября 2010 года
misha_turist
572 / / 28.11.2005
Доброго времени суток!

Есть кнопка TToolButton событие нажатия в котором задаётся через TAction, при обычной работе оно срабатывает.

Выполняется цикл, который вызывает application.ProcessMessages, при этом при нажатии вышеописанную кнопку, сама кнопка нажимается, а обработчик события не вызывается. Кроме того не работает обновление событий TAction.

Кто-то уже с подобным сталкивался? какие есть пути решения?

Заранее спасибо !
14
03 сентября 2010 года
Phodopus
3.3K / / 19.06.2008
И слава богу что не работает.
Решается отказом от ProcessMessages. Она явно не для того создана, судя по тому как вы ее используете.
303
03 сентября 2010 года
makbeth
1.0K / / 25.11.2004
Обновление работать в любом случае не будет, т.к. оно работает только при простое приложения (Idle). А вот почему не отрабатывает OnClick... это надо будет поелозить по коду VCL. Возможно сообщение не попадает в очередь сообщений потока, т.е. обрабатывается локально.
286
03 сентября 2010 года
misha_turist
572 / / 28.11.2005
Цитата: Phodopus
...Она явно не для того создана, судя по тому как вы ее используете.


Через нажатие кнопки организована пауза вычеслений.

286
06 сентября 2010 года
misha_turist
572 / / 28.11.2005
Реакция на нажатие заработала.... почему не знаю...:confused:

а обновление решается теперь через ActionStart.Update, хотя это конечно, имхо, не верный подход.
5
06 сентября 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: misha_turist
Через нажатие кнопки организована пауза вычеслений.



Т.е. вычисления происходят в потоке интерфейса? :D
Если так, то у вас точно проблемы с архитектурой.

286
06 сентября 2010 года
misha_turist
572 / / 28.11.2005
Цитата: hardcase
Т.е. вычисления происходят в потоке интерфейса? :D
Если так, то у вас точно проблемы с архитектурой.


Вполне может быть, но
- "вычисления" идут минуту две не больше
- программа для внутреннего использования
- работать с потоками я не умею, пока что
- важно было сделать "быстро"

:)

5
06 сентября 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: misha_turist

- "вычисления" идут минуту две не больше

Отличный повод использовать выделенный поток.

Цитата: misha_turist

- работать с потоками я не умею, пока что

Отличный повод научиться их использовать.

Цитата: misha_turist

- важно было сделать "быстро"

Что лучше: один раз сделать правильно и потом поддерживать это решение или каждый раз при потребности изменения кода долго охотиться на ведьм?

286
06 сентября 2010 года
misha_turist
572 / / 28.11.2005
Цитата: hardcase
Отличный повод использовать выделенный поток.
----------------------------------
Отличный повод научиться их использовать.
----------------------------------
Что лучше: один раз сделать правильно и потом поддерживать это решение или каждый раз при потребности изменения кода долго охотиться на ведьм?


Согласен.
Согласен.
Согласен, только программа нужна будет пол года не больше. дальше надобность в ней отпадёт. Хотя наверное действительно переделаю..

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог