Странности с получением true/false из dll [решено]

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

Аватара пользователя
trengtor
новенький
Сообщения: 77
Зарегистрирован: 03.05.2013 08:57:43
Откуда: Москва

Сообщение trengtor »

Перестал мучить программу и консольный тест, и написал для проверки форму, где разные вызовы обрабатываются разными обработчиками кнопок, а не крутятся внутри одного обработчика (одной процедуры). Все «мистическим» образом заработало.

А вот в пределах одного обработчика (процедуры) положение не спасают ни таймауты по sleep, ни циклы ожидания (это я персонально для alexey38 примечание сделал).

Теперь в раздумьях: как жить дальше. Ибо в таком виде этот API несколько неудобен.

Добавлено спустя 4 часа 29 минут 46 секунд:
Мне тут «стучат из подпола» и подсказывают, что можно попробовать «передернуть» очередь сообщений текущего окна между set- и get-вызовами API. Нет ли у кого-нибудь готовых примеров того, как это делается?

Добавлено спустя 8 часов 31 минуту 34 секунды:
Нашлось:

Код: Выделить всё

Application.ProcessMessages;
Аватара пользователя
trengtor
новенький
Сообщения: 77
Зарегистрирован: 03.05.2013 08:57:43
Откуда: Москва

Сообщение trengtor »

Вендор, после жОстких наездов, опубликовал-таки исходники своего API.

Насколько я понимаю, все эти «радости жЫзни» были из-за применения SyncMethod = smWindowSync, создающего невидимое окно, цепляющееся к циклу обработки (очереди) сообщений.

ps: Ложечка нашлась, да, но осадочек остался
Ответить