Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.023 c
1-55622
simeon
2003-07-03 19:26
2003.07.17
Немодальные формы, caFree и if Assign(MyForm) ...????


4-55901
Fotog
2003-05-16 21:19
2003.07.17
CreateProcess


8-55665
Intell
2003-03-27 07:39
2003.07.17
PlayList - HELP!


14-55772
Катерина
2003-06-30 09:51
2003.07.17
Оптический синткз


6-55693
baracuda
2003-05-12 16:47
2003.07.17
send mail