1 | ||||||
OnMessage формы FMX12.08.2017, 16:28. Показов 2200. Ответов 9
Метки нет (Все метки)
Добрый день форумчане!
Есть форма. Есть поток. Из потока по его завершению оставляю в очереди сообщений PostMessage(Cardinal(Handle), ON_RESPONSE_COMPLETE, 0,0); В vcl есть обработчик OnMessagee в котором можно было обрабатывать сообщения из потоков В FMX OnMessagee не описан. Как принять сообщения из потока в FMX? Добавлено через 11 минут В потоке реализовал обработчик procedure OnResponse(Sender: TObject; AResponse : string); И в главной форме к нему цепляюсь, но по завершению потока и его дальнейшее уничтожение влечет уничтожение все что обрабатываю в этом обработчике Вот видео Тыц Процедура ShowAlert(Post); создает эти алерты динамически, Если вызвать эту процедуру в обработчике который я описал в своем потоке то как из видео видно что по завершению они уничтожаются. Поэтому принято решение в обработчике выполнить метод PostMessage(Cardinal(Handle), ON_RESPONSE_COMPLETE, 0,0); что бы дать сигнал для показа алертов. Добавлено через 14 минут Если это как то упростит задачу то мне всего лишь нужно послать сообщение из потока в главную форму, у меня 2 способа для VCL есть, но они не работают в FMX. Как это сделать? Добавлено через 1 час 11 минут В общем, пока отказался от реализации с PostMessage
И алерты не дохнут после загрузки данных... )))
0
|
12.08.2017, 16:28 | |
Ответы с готовыми решениями:
9
Глюк Формы FMX в среде Delphi 10.1 Berlin Starter Upgrade FMX приложение на XP Авторизация в FMX Try icon FMX |
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
12.08.2017, 20:43 | 2 |
Лучше бы код выложил чем непонятное видео.
Что мешает разобрать результаты работа потока в обработчике OnTerminate?
0
|
13.08.2017, 01:41 [ТС] | 3 | |||||
Все разрешилось строчками
OnTerminate аналогично OnResponse который я определил, вот только если без Synchronize формы уничтожались Прикрепляю исходники
0
|
13.08.2017, 10:06 | 4 |
мда.
специально для вас начал писать блог https://www.cyberforum.ru/blog... g4873.html https://www.cyberforum.ru/blog... g4874.html никаких игр с посылкой сообщений не требуется у вас в потоке по сути атомарная операция старт. выполнение одной функции. финиш. зачем перед финишем пытаться что-то делать, если это можно сделать после без всяких сообщений и прочей фигни так что вот еще один текст https://www.cyberforum.ru/blog... g4875.html
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
13.08.2017, 12:11 | 5 |
OnTerminate ни разу не аналогичен OnResponse, который ты определил.
А наличие Synchronize делает бессмысленным использование потоков.
0
|
13.08.2017, 15:34 [ТС] | 6 | ||||||||||
Если вы заметили в каком месте я выполняю синхронизацию?
Но вопрос уже решен. В том виде в каком есть, в FMX нет антифриза. Пробовал делать GET и при этом начал таскать форму за шапку, форма не зависала. Но легкое подвесание происходило в момент всплывания алертов. Планируется что главная форма MainForm будет как окно параметров и оно в основном будет скрыта от глаз. ну это уже другая история...
0
|
15.08.2017, 14:45 [ТС] | 9 |
Добрый день!
А на что опирается THttpClient ? Наверное есть какие то зависимости? (сторонние) Допустим в Indy нужен libssl32.dll для работы по https На чистой ОС работать будет? Рассчитываю на непринужденный ответ...
0
|
15.08.2017, 15:44 | 10 |
будет работать
0
|
15.08.2017, 15:44 | |
15.08.2017, 15:44 | |
Помогаю со студенческими работами здесь
10
DBGrid в FMX Ресурсы в FMX Не корректная работа FMX Обновить форму FMX Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |