Привет!
У меня такая проблема. Я обрабатываю события OnCustomDrawItem TreeView. Здесь вопросв нет — все перерисовывается отлично, вот только результат перересовки виден, если выполнить treeview.repaint (refresh)... При этом естесственно окно моргает. У меня в таймере в зависимости от события меняется картинка возле item'a и поэтому как только срабатывает таймер — окно рефрешится, т.е. моргает. Есть какой нибудь другой способ обновлять нодесы, не прибегая к полной прорисовке treeview.
П.С. вообще меня интересует больше прорисовка самой картинки, а не нодеса в целом (текст необязателен)...
Я делал так:
Rect:=Treeview1.Items[i].DisplayRect(false);
ImageList1.Draw(TreeView.Canvas, Rect.Left,Rect.top,ImageIndex,True);
Картинки прорисовываются, но каждая новая накладывается на предыдущую — а мне надо, что бы новая картинка сначала стирала предыдущую, а затем рисовалась сама
Вот такой вопрос, может как-то через WinAPI это сделать можно
Заранее Спасибо!
Здравствуйте, Dmitri_ru, Вы писали:
D_>Привет!
D_>У меня такая проблема. Я обрабатываю события OnCustomDrawItem TreeView. Здесь вопросв нет — все перерисовывается отлично, вот только результат перересовки виден, если выполнить treeview.repaint (refresh)... При этом естесственно окно моргает. У меня в таймере в зависимости от события меняется картинка возле item'a и поэтому как только срабатывает таймер — окно рефрешится, т.е. моргает. Есть какой нибудь другой способ обновлять нодесы, не прибегая к полной прорисовке treeview.
D_>П.С. вообще меня интересует больше прорисовка самой картинки, а не нодеса в целом (текст необязателен)...
D_>Я делал так:
D_>Rect:=Treeview1.Items[i].DisplayRect(false);
D_>ImageList1.Draw(TreeView.Canvas, Rect.Left,Rect.top,ImageIndex,True);
D_>Картинки прорисовываются, но каждая новая накладывается на предыдущую — а мне надо, что бы новая картинка сначала стирала предыдущую, а затем рисовалась сама
D_>Вот такой вопрос, может как-то через WinAPI это сделать можно
Можно конечно:
R := Node.DisplayRect (False);
InvalidateRect (TreeView.Handle, @R, False);
И не надо никакой прорисовки картинки...
Здравствуйте, Danchik, Вы писали:
...
D>И не надо никакой прорисовки картинки...
Пасип — точно я забыл про эту процедуру
Все заработало — и бысро как ответили — супер ...