Конференция "Компоненты" » Создание к-та: как корректно рисовать на канве
 
  • AlexeyT © (06.08.07 02:38) [0]
    Компонент делает следующее (наследник TGraphicControl):
    в Paint запускает таймер, и уже таймер через NNN мс вызывает отрисовку. Т.е. отрисовка на канве делается уже не в Paint.

    Все нормально, только контрол (метка), выведенный поверх моего к-та, после такой моей отрисовки не перерисовывается сам. Поэтому после моей отрисовки метка затирается - плохо. Что с этим делать?
  • Ping (06.08.07 07:51) [1]
    Все нормально, только контрол (метка), выведенный поверх моего к-та, после такой моей отрисовки не перерисовывается сам.

    Вверх ногами все переворачиваешь. Рисовать по таймеру, запускаемому в методе Paint - это не "все нормально", а, наоборот, "не нормально". А то, что "контрол (метка)" не прорисовывается сам - вот это как раз нормально.

    Что с этим делать?

    Рисовать в Paint. Повторяй как мантру...

    Как крайний случай - вызови после "своей" прорисовки (по таймеру уже) метод Invalidate своего контрола (метки).

    Но, все равно, повторяюсь - рисуй в Paint.
  • AlexeyT © (06.08.07 22:32) [2]
    У меня задача спец-кая. Нельзя прямо в Paint рисовать (наверное): я делаю ресемплинг картинки (медленный) и если делать его прямо в Paint то тормозит. Поэтому делаю таймер...

    попробовал Invalidate для метки: после этого вызывается Paint моего контрола (зацикливаемся).
  • AlexeyT © (06.08.07 22:40) [3]
    Уточню: речь про компонент ATImageBox ( http://atorg.net.ru/delphi/atimagebox.htm ), метка это текст в левом верхнем углу.
  • Ping (07.08.07 09:44) [4]
    я делаю ресемплинг картинки (медленный) и если делать его прямо в Paint то тормозит

    Используй промежуточный Bitmap.
 
Конференция "Компоненты" » Создание к-та: как корректно рисовать на канве
Есть новые Нет новых   [119140   +29][b:0][p:0]