Форум: "Начинающим";
Текущий архив: 2011.06.26;
Скачать: [xml.tar.bz2];
ВнизМедленная прорисовка визуальных компонент в Run-Time Найти похожие ветки
← →
sergf28 © (2011-03-24 17:24) [0]WinXP, Delphi 2010
Intel Core I3, RAM 3Gb
есть задача по визуализации полей с растениями на питомнике.
каждому растению соответсвует jvSpeedButton (с TPanel результат тот же).
Массив кнопок создается в run-time.
на небольших полях до 700-800 растений все отрисовывается достаточно быстро. На полях где растений (кнопок) более 3000 отрисовка начинает занимать 7-8 минут (обращения к БД отключены)т.е. тормозит именно отрисовка.
Приичем где то до полутора тысяч элементов все идет достаточно быстро, а потом визуально даже видно, что начинает прорисовываться почти в два раза медленее чем сначала.
запрещал обновление формы с помощью
Perform(WM_SETREDRAW, 1, 0) и LockWindowUpdate(Form.Handle);
не помогло.
Может кто сталкивался уже с такой проблемой?
← →
stas © (2011-03-24 17:30) [1]3000 объектов это жестко. Рисуйте на канве.
← →
sergf28 © (2011-03-24 17:39) [2]
> 3000 объектов это жестко. Рисуйте на канве.
канва не совсем то. не хочется терять OnClick и Hint
← →
Dennis I. Komarov © (2011-03-24 17:44) [3]Так не теряй, просто вычисляй координаты...
← →
han_malign (2011-03-24 17:53) [4]
> не хочется терять
- для ленивых - TPaintBox...
← →
RWolf © (2011-03-24 17:56) [5]TDrawGrid, как вариант.
2000 ячеек с рисунком в каждой, отрисовывается мгновенно.
← →
sergf28 © (2011-03-24 18:45) [6]
> TDrawGrid, как вариант.
> 2000 ячеек с рисунком в каждой, отрисовывается мгновенно.
>
спасибо :) пока это лучший вариант
← →
han_malign (2011-03-25 09:39) [7]
> пока это лучший вариант
- если что - обновление состояния ячейки - InvalidateCell()
он protected, но достучаться можно...
если хочется по честному:
rect:= drawgrid.CellRect(c,r);
Windows.InvalidateRect(drawgrid.Handle, @rect, false);
З.Ы. Чтобы не заморачиваться с хранилищем можно сразу брать TStringGrid, состояние можно хранить в LongWord(Objects[c,r]) - и не думать об Invalidate...
← →
int64 © (2011-03-25 12:51) [8]
> > TDrawGrid, как вариант.
> > 2000 ячеек с рисунком в каждой, отрисовывается мгновенно.
>
> >
>
> спасибо :) пока это лучший вариант
Пока лучший вариант: [1]
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.06.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c