Можно ли использовать анимированные иконки с узлами VirtualTreeView? - PullRequest
1 голос
/ 19 мая 2011

Я использую потрясающий компонент VirtualTreeView с Delphi 2010. В настоящее время мои узлы настроены со стандартным изображением в TImageList. То, что я хотел бы сделать, - это показать какой-нибудь вращающийся анимированный значок, чтобы визуально показать, что узел "занят".

Очевидно, что узел не будет занят, но то, что узел представляет для пользователя, на самом деле будет занято. Есть ли простой способ сделать это?

Единственный способ, о котором я могу подумать, - это создать добавить 8-10 изображений, представляющих вращающееся колесо, к моему текущему списку TImageList, а затем циклически просмотреть их для этого узла.

У кого-нибудь есть предложения?

1 Ответ

3 голосов
/ 19 мая 2011

Вероятно, вы можете сделать анимацию самостоятельно. Например, вы можете сохранить состояние анимации в данных узла. Затем вы могли бы многократно (из таймера) выполнить итерацию всего дерева (IterateSubTree) и из обратного вызова проверить данные узла, и если узел должен быть анимированным, вызовите RepaintNode (чтобы немедленно перерисовать) или InvalidateNode (чтобы сделать недействительной узел, поэтому он окрашен в следующем цикле рисования). Фактическое рисование может быть выполнено как обычно из обработчика событий OnGetImageIndex, возвращая различные индексы изображений для разных этапов цикла анимации.

...