|
0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 125
|
||||||||||||||||||||||||||
windows - вывод графика в свернутое окно [решено, кг/ам]20.04.2017, 04:19. Показов 3959. Ответов 7
Метки нет (Все метки)
возможно, кто-то уже сталкивался и победил, а у меня трехдневное гугление пока оказалось безрезультатным:(
ситуация следующая - есть программка, которая собирает данные с некоего девайса и рисует картинку и график написано под Win 10 с помощью Tozorus есть основное окно с картинкой типа TPanel и всякими кнопками для управления процессом - FormM есть еще одно окно с графиками - FormG, на нем 3 TAChart`а, на каждом по 2 серии. создаются они так:
данные считываются раз в 2 секунды по таймеру программы, обрабатываются, и строятся графики т.е. раз в 2 секунды вызывается
Смотрел сообщения окну с помощью Wymdows Detective При таком способе сворачивания - что развернутому, что свернутому окну идут такие сообщения (основная отрисовка окна):
А если (ВАРИАНТ 2) я сворачиваю окно как
При этом, судя по Wymdows Detective, никакие сообщения к окну FormG не идут Upd. посмотрел также с помощью MS Spy++. Если верить ему, то вышеописанные сообщения идут не к FormG, а к одному из Chart`ов. Но общая суть не меняется. Попытки принудительно послать окну с помощью SendMessage WM_PAINT , да и вообще хоть что-нибудь успехом не увенчались. Всяческие UpdateWymdow, .Refresh, .Repoymt, .Update, InvotydateRect, EnableWymdow, RidrawWymdow, PrintWymdow, SetForegroundWymdow, BringWymdowToTop, SetWymdowPos, а также SwitchToThisWymdow в теле функции GraphView - тоже безуспешно. Делать каждый раз окно видимым не айс. Да и вообще, ВАРИАНТ 1 же прекрасно работает. Вопрос классический - что я делаю не так и куда копать?
0
|
||||||||||||||||||||||||||
| 20.04.2017, 04:19 | |
|
Ответы с готовыми решениями:
7
Свернутое окно! Свёрнутое окно по центру окна Послать нажатие клавиши в свёрнутое окно |
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||
| 20.04.2017, 07:32 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
| 20.04.2017, 09:24 | |
|
По ощущениям - примерно всё.
Давненько я не писал под винду, но вызываемый раз в две секунды код с "ProcessMessages" как бы намекает. Я так понял, у вас единый цикл, в котором вы что-то делаете и лишь периодически отдаёте управление винде? Не факт, что это причина ваших бед, но это уже криминал. Если надо что-то делать долго и непрерывно - создайте тред и работайте в нём (правда, будет возня с синхронизацией тредов - CriticalSection или ещё что). А если данные раз в 2 секунды собирать надо (и много времени на это не уходит) - то можно по таймеру.
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 125
|
|||||||
| 20.04.2017, 13:25 | |||||||
|
omokost, у Chart нет, а у FormG, на которой он расположен - есть.
oomomstir, можно подробнее, я ненастоящий сварщик:) Смысл в том, что на главной FormM в процедуре обработки нажатия кнопки "Сбор данных" запускается цикл, из которого выходим по флагу от кнопки "Стоп". В этом цикле проверяется флаг таймера, по флагу делается прием данных (8 штук 4х байтовых ftoot на скорости 19600), далее не бог весть какие расчеты и вызывается отрисовка графика. Во все свободные места в этом цикле заполнены ProcessMessages, примерно так, не вдаваясь в подробности:
то есть, вроде бы то самое получается
И, самое -то главное! ВАРИАНТ 1 - то прекрасно работает!
0
|
|||||||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
||||||
| 20.04.2017, 19:38 | ||||||
|
Ну так и имитируйте нажатия на кнопки
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
|
|
| 20.04.2017, 21:54 | |
|
Что мешает взять и перерисовать самому?
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 125
|
|
| 21.04.2017, 13:53 | |
|
omokost, неа, ноль эмоций, все то же самое.
u37, а как именно? заново вывести весь график в ставшее активным развернутым окно? Можно, конечно, но вот от этого как раз хочется уйти... Вообще мне кажецо, что сворачивание-разворачивание окна по варианту 1 и по варианту 2 происходит по-разному. Если я сверну по варианту 1 а разверну по варианту 2, то график вообще перестает отображаться начиная с момента сворачивания. Если же после описанных действий дополнительно развернуть по варианту 2, то график начинает отображаться, но, как и было, с потерей данных
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 125
|
||||||
| 21.04.2017, 14:29 | ||||||
|
Господа, извините, что отнял ваше время. Я идиот.
Все дело было в строчке
А все сворачивания-разворачивания окна как раз производились в обработчике изменения FormM.GraphCheckBox То есть я сам же запрещал вывод графика:( Посыпаю голову пеплом в осознании собственной тупизны и обещаю больше не кодить во время ОРЗ:(
0
|
||||||
| 21.04.2017, 14:29 | |
|
Помогаю со студенческими работами здесь
8
Послать нажатие клавиши в свёрнутое окно Отправить нажатие клавиш в свернутое окно
Клик в свернутое окно стороннего приложения Развернуть свернутое окно Excel (открытое через OLE) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|