Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TReeView мигание! [D5, Win95/98, NT4, Win2k, WinXP]


Каспер ©   (2002-04-17 09:19:00) 

Привет !
Кто нить знает как заделать мигание без таймера Узла дерева в компоненте ТРИВИЮ...
пока мигает так... по таймеру
procedure TUserListClass.TimerTimer(Sender: TObject);
Var I:Integer;
begin //


Windows   (2002-04-17 15:56:00) [1]

а если repeat ... until ...;


exchoper   (2002-04-17 14:35:00) [2]

не помешает еще
BeginUpdate
EndUpdate
для Items


REA   (2002-04-17 10:55:00) [3]

Это дело наверняка не поддерживается; надо руками делать - а тут вариантов не так много. Таймер как раз самый безобидный вариант.


Каспер   (2002-04-17 09:38:00) [4]

Дело в том что все это реализовано через компонент ТАЙМЕр :( а мне бы хотелось если такое возможно без него.
Ну типа анимированый gif встроить...


REA   (2002-04-17 09:36:00) [5]

Ну разве что еще упростить код

Const
States: Array[Boolean] Of Byte = [4,5];

For i := 0 to Count-1 Do
With (TUserClass(objects[i]),node) Do
Begin
ImageIndex := States[Msg.Count<>0];
SelectedIndex := ImageIndex;
End;

(или еще функция в D6 есть IfThen чего-то - условное присваивание)

а так, если уже мигает, то зачем еще что-то?
можно еще StateIndex (или как там его) использовать или OwnerDraw.
Еще полезно сначала заблокировать дерево и потом разблокировать
(BeginUpdate - EndUpdate) и если уж это не помогло, то еще заблокировать само окно от перерисовки (хотя не исключено что это тоже самое - в код не залезал).


Наверх

Титульная страница Поиск, карта сайта Написать письмо