Страница: 1 |
Вопрос: Возврат управления | Добавлено: 10.07.04 15:56 |
Автор вопроса: ![]() |
Парни, вот такая проблема...
К примеру имеется несколько форм с накладными и одна форма для работы с товаром. В этой форме юзер удаляет какой-либо товар или меняет цену и т.д., а он уже выдан в накладной.. Я пошел по следующему пути: - При измении в товаре я через SendMessage рассылаю всем формам в MDI-приложение предварительно зарегестрированное сообщение. - Форма его отлавливает и вносит измения(переданные в сообщении) в накладную Проблема заключается в том, что прога зависает,пока все накладные не обработают полученное сообщение.Другими словами управление не возвращается до окончания обработки сообщения другими формами.. Возможно ли сделать так чтобы накладные обрабатывали сообщение в фоновом режиме, т.е. без захвата управления? Возможно надо использовать PostMessage? Но каков тогда порядок обработки полученных сообщений формой? |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 10.07.04 16:30 |
Попробуй Пост... возможно и подойдет... правда лишь только при условии, что ты в качестве lParam не передаешь каких-нибудь данных, например UDT или ссылку на массив...
Т.к. в этом случае массив может быть уничтожен еще до окончания работы с ним других процедур... Тут бы в самый раз запустить кол-во потоков равное кол-ву форм... на каждую по потоку... но т.к. это невозможно, стоит попробовать ПостМессадж... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #2 | Добавлено: 10.07.04 17:01 |
SendMessage передает сообщение в оконную процедуру немедленно и не возвращается, пока сообщение не обработано. Сообщение обрабатывается сразу, остальные сообщения в очереди отодвигаются на потом. PostMessage передает сообщение в конец очереди сообщений и возвращается не ожидая, пока твоё сообщение будет обработано. В этом случае сообщение будет обработано только когда до него дойдёт очередь. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #3 | Добавлено: 10.07.04 17:58 |
sne:
В lParam я планирую передавать значение Long(ID изменённого товара).. Надеюсь, с ним ничего не случиться? В SendMessage этот вариант отлично работает. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 10.07.04 18:18 |
Если товар для всех один, и это значение меняться не будет, то должно быть все впорядке...
по-идее... |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #5 | Добавлено: 11.07.04 03:31 |
sne:
А почему потоки не реальны?? В VB6 с этим трудности? |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 11.07.04 03:37 |
небольшие ![]() |
Страница: 1 |
|