|
36 / 33 / 1
Регистрация: 11.01.2013
Сообщений: 388
|
|||||||||||
График в потоке19.07.2013, 20:07. Показов 5632. Ответов 51
Метки нет (Все метки)
Доброго времени суток!
Решаю задачу анимации графика функции, т.е. график изменяется в TChart со временем. Одиночка предложил замечательное решение данной задачи, такое что во время задержки, при анимации зависания формы не происходит. Идея решения - обновлять график в отдельно потоке. К сожалению возникло затруднение - обновления с задержкой не происходит. Код основного юнита:
0
|
|||||||||||
| 19.07.2013, 20:07 | |
|
Ответы с готовыми решениями:
51
GDI+. Почему в отдельном потоке картинки сохраняются как белые прямоугольники, а в основном потоке - всё Ок? Создание/удаление/изменение файлов в потоке. А так же мониторинг файлов в потоке График звездочками в массиве. Программа "График зависимости даты от температуры" |
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
||
| 20.07.2013, 10:55 | ||
Я предложил решение при помощи потока. Обработка такая же, как и обычно без анимации. Только в потоке в нужных местах происходит приостановка потока и запуск таймера. Таймер потом запустит поток и обработка продолжится дальше с того места, где была приостановлена. Да, график можно нарисовать и при помощи таймера.
1
|
||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
||
| 20.07.2013, 12:28 | ||
|
В данном алгоритме мы имеем: с одной стороны - таймер ничего не отрисует, пока не будут выполнены расчеты (с потоком или без); с другой - зачем делать вычисления в потоке "раньше времени", чтобы потом ждать таймер, если их можно сделать своевременно в том же таймере? Получается, что поток тут - не пришей кобыле хвост.
1
|
||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 20.07.2013, 12:37 | |
|
@FIL, Ты посмотри код, который я последним выложил. Всё там рисует. А таймер там используется только для задержки. Вместо Sleep внутри цикла.
Кроме того, изначально ТС не указывал что он конкретно собирается анимировать. А данный способ подойдёт для любой анимации без усложнения кода. Сейчас я немного усложню задачу ТС.
1
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|
| 20.07.2013, 12:55 | |
|
Одиночка, я ж не спорю - работает, но зачем так все усложнять - пока не пойму.
1
|
|
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 20.07.2013, 13:07 | |
|
@FIL, Я же говорю: изначально ТС не указывал что он конкретно собирается анимировать. А с усложнением задачи, анимация таким способом, - не будет усложняться. А при использовании только таймера с усложнением анимации - задача будет усложняться. Причём довольно сильно. Мы ведь ещё не знаем какую конечную цель поставил ТС. Собственно, он решил поэкспериментировать. Лучше разберётся. И поскольку вариант универсальный - потом можно мутить любую анимацию.
Например, я делал анимацию простой сортировки в StringGrid-е через таймер. Нужно было отображать переставляемые элементы, отсортированные и т.п. Довольно неудобно.
1
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|
| 20.07.2013, 13:28 | |
|
Одиночка, мы ж в таймере либо потоке прописываем один и тот же код, так почему первый вариант становится сложнее второго?
Может у тебя конкретный пример есть?
1
|
|
|
36 / 33 / 1
Регистрация: 11.01.2013
Сообщений: 388
|
||
| 20.07.2013, 15:51 [ТС] | ||
|
Одиночка, СПАСИБО ОГРОМНОЕ!!!
Всё работает как и хотелось бы! Даже не верится... Кроме того очень приятно, что, благодаря Вам, лучше научился работать с потоками. Ещё раз большое Вам СПАСИБО! FIL, Спасибо! Вы мне очень помогли. northener, Спасибо за конструктивную критику, ![]() Теперь буду пытаться таким же образом построить поверхность. Ещё раз всем большое спасибо!
0
|
||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 20.07.2013, 16:10 | |
|
Вот немного подправил, чтобы анимация была более плавной. Только просто заменой кода не обойтись, так как там ещё изменены настройки Chart. Может твоя Delphi проглотит. А если нет - тогда в Unit-ах поменяй строки Uses, из твоих Unit-ов.
1
|
|
| 20.07.2013, 18:23 | |
|
Не по теме: А при чем тут Архангельский к говнокодерам ?
0
|
|
|
36 / 33 / 1
Регистрация: 11.01.2013
Сообщений: 388
|
|
| 21.07.2013, 21:21 [ТС] | |
|
Одиночка, фантастика!!!
Программа восхитительна! Ещё раз огромное Вам спасибо! С уважением, SysUnit. Добавлено через 2 минуты Avazart, судя по всему Архангельский, когда писал свои книги, то некоторое главы поручал писать ученика и всё бы ничего, но в некоторых местах есть очень не аккуратный код, что и имеют ввиду товарищи форумчане.
0
|
|
|
36 / 33 / 1
Регистрация: 11.01.2013
Сообщений: 388
|
||
| 21.07.2013, 22:02 [ТС] | ||
|
Моя гипотеза основана на том, что коллеги несколько раз приводили пример не аккуратных фраз/кода у Архангелького, поэтому я и сделал такое предположение.
0
|
||
| 21.07.2013, 22:02 | |
|
Работа в потоке Ошибка в потоке TWebBrowser в потоке Цикл в потоке ! Cookie в потоке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|