Текущий архив: 2003.07.17;
Скачать: CL | DM;
ВнизУвеличение быстродействия прорисовки компонентов Найти похожие ветки
← →
Vint45 (2003-07-03 11:53) [0]Добрый день! Я создаю программным путем на форме большое количество визуальных компонентов, порядка 1000. Причем делаю это на этапе создания формы. Изначально я создавал их в событии OnShow, т.к. надо было получить параметры самой формы. Прорисовка и создание элементов при этом составляла несколько секунд. Когда же я переместил создание элементов в событие OnCreate, прорисовка стала почти моментальной. Я так понимаю, что это связано с групповой прорисовкой компонентов, а не поэлементной. Теперь мне требуется, чтобы элементы создавались во время выполнения програмы. Вопрос, есть ли функции приостановки прорисовки компонентов, чтобы чтобы после их создания сделать групповую прорисовку?
← →
MBo (2003-07-03 11:57) [1]Положить их, скажем, на панель, и делать ее visible
← →
Vint45 (2003-07-03 12:09) [2]ага, прокатывает. Только они у меня уже на панели расположены, и при этом она мигает, видимо надо еще одну панель вложеную сделать без бордюров и на ней прорисовывать.
← →
MBo (2003-07-03 12:11) [3]А какой маньяк будет столько контролов рассматривать? :)
← →
Vint45 (2003-07-03 12:18) [4]это спидбатоны :). Я их использую при отображении результов алгоритма расчета, раскрашиваю их как надо. Попробовал сначала TRichText, но с ним не совсем удобно работать, вот и перешел на спидбатоны :)
← →
MBo (2003-07-03 12:19) [5]??? Так для отображения надо же единственную картинку формировать
← →
Vint45 (2003-07-03 12:34) [6]Можно, конечно. Но недостатком будет, невозможность на ней отредактировать данные, спидбатоны это позволяют это сделать.
Немного поясню:
1. Сначала для отрезка из 1000 элементов генерю случайным образом значения типа есть элемент и нет элемента.
2. запускаю алгоритм расчета, который находит находит диапазоны элементов, типа экстремумов.
3. раскрашию найденные диапазоны(спидбатоны) в соответствующие цвета.
4. анализию результаты :)
5. если что-то не устраивает в распределении элементов, то нажимая на спидбатон, делаю его элементом, или наоборот не делаю.
И заново запускаю расчет уже с учетом перераспределенных элемнетов.
Схема примерно такова.
← →
MBo (2003-07-03 12:41) [7]Это, ИМХО, неразумно.
Что мешает отловить клик по картинке - координаты-то известны будут.
← →
NickBat (2003-07-03 12:43) [8]Почему бы все это не нарисовать на TCanvas?
← →
Vint45 (2003-07-03 12:45) [9]реализуется сложнее. Как потом картинку отрисовывать? Ведь она изменится.
← →
Sandman25 (2003-07-03 12:51) [10]Vint45 (03.07.03 12:45)
Сделать массив of boolean, и рисовать себе картинку по этим данным.
← →
ЮЮ (2003-07-03 12:52) [11]Тогда на DrawGride
← →
MBo (2003-07-03 12:56) [12]Vint45
Изменится- перерисуешь всю или только измененный прямоугольник
← →
Calm (2003-07-03 12:59) [13]Я нечто похожее делал на StringGrid"е и по координатам мышки определял чего делать при клике.
На самом деле, вовсе не сложно.
← →
Vint45 (2003-07-03 13:37) [14]Дело в том, что у меня все уже реализовано, и менять что-то если все работатает, не хочется. Притом с канвасом я уже давно не работал и порядком его подзабыл. Но я учту ваши замечания на будующее, спасибо :)
Страницы: 1 вся ветка
Текущий архив: 2003.07.17;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c