Главная страница
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.017 c
8-55665
Intell
2003-03-27 07:39
2003.07.17
PlayList - HELP!


3-55429
Endi
2003-06-22 12:58
2003.07.17
Длинный DBCtrlGrid


3-55406
Karburator
2003-06-23 21:38
2003.07.17
Определить ключевое поле


1-55581
Jurmich
2003-07-03 10:20
2003.07.17
QuickReport


3-55402
DBDev
2003-06-23 16:02
2003.07.17
Коллеги, помогите с запросом ПЛИЗ!!!