Конференция "KOL" » Томоза при изменении видимости и положения визуальных элементов [Delphi, Windows]
 
  • Mike (18.02.11 10:29) [0]
    Использую KOL 2.93
    Есть на форме панель (TKOLPanel), на ней находятся множество компонент типов TKOLLabel, TKOLImageShow, TKOLPanel.
    Во время работы программы выполняется скрытие/отображение компонент и их перемещение по родительской панели с помощью свойства Visible и метода SetPosition. И вот этот процесс занимает очень длительное время.
    Пробовал использовать методы BeginUpdate/EndUpdate родительской панели, но не помогло.
    Подскажите пожалуйста как можно решить проблему??
  • MTsv DN (18.02.11 10:44) [1]
    Привет...

    > Использую KOL 2.93
    ...
    > Подскажите пожалуйста как можно решить проблему??
    Обновись до последней версии, никто не будет "откатываться" до 2.93, чтобы проверить...
  • Mr (18.02.11 11:00) [2]
    TKOLLablel - фееричный тормоз - в свое время полностью отказался от него в ПО отображающем показания датчиков - проц. на элементарной задаче грузило на 12% фактически ничегонеделающее приложение (3-Label'a).
  • Vladimir Kladov © (18.02.11 12:23) [3]
    Попробуйте выключить Windowed для всех или для части контролов, особенно тех, которых множество.
  • Mike (18.02.11 18:24) [4]
    Vladimir Kladov
    Попробуйте выключить Windowed для всех или для части контролов, особенно тех, которых множество.

    Владимир, не помогло....... Даже несколько хуже - при интенсивном перемещении элементов наблюдается очень заметная нагрузка на процессор (50% на моем Core2 3ГГц).
    И судя по исходниками Windowed и не-Windowed элемент отличается только вызовом SetWindowPos??
    Кстати, мне несколько непонятно что вообще вызывает такую задержку? Кроме SetWindowPos есть только Invalidate. Какая из этих функций тормозит??

    Mr
    TKOLLablel - фееричный тормоз - в свое время полностью отказался от него в ПО отображающем показания датчиков - проц. на элементарной задаче грузило на 12% фактически ничегонеделающее приложение (3-Label'a).

    Вот уже думаю может сгруппировать элементы на панелях, сами элементы упразднить и сделать вместо них ручную прорисовку, а перемещать и скрывать/отображать сами панели......
  • Vladimir Kladov © (18.02.11 19:12) [5]
    В версии < 3.00 все работало. Сразу должна была быть в коде: MCK формирует NewGraphLabel вместо NewLabel, например.

    У вас точно нет перекрытия контролами друг друга на одном уровне дочерних? В этом случае легко получается клэш и постоянная перерисовка окон, когда прорисовка одного затирает другого. Вы можете сделать тестовый пример - чтобы он так же себя вел?
 
Конференция "KOL" » Томоза при изменении видимости и положения визуальных элементов [Delphi, Windows]
Есть новые Нет новых   [134430   +4][b:0][p:0]