Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Вниз

Увеличение быстродействия прорисовки компонентов   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.015 c
14-55849
hex_for_gold
2003-06-30 00:42
2003.07.17
Нужно срочно пример простейшего чата на IdTCPServer and IdTCPclie


1-55515
Poirot
2003-07-04 10:36
2003.07.17
Проблема с хранением больших числовых массивов


1-55642
DeDok
2003-07-04 09:13
2003.07.17
Toolbar как в Visual.NET


3-55388
-=alive=-
2003-06-22 14:29
2003.07.17
Вложенный select


14-55844
Shluz
2003-06-30 00:17
2003.07.17
Оцените дизайн





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский