| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Virtual Treeview работа с imagelist |
| Автор: sergey_occnet_ru 2.5.2007, 13:12 |
| Вопрос следующий..... На форме лежит Vt в нем загружены списки группы с пользователями (как аське и других клиентах) Так вот как менять номер картинки у определенного нода например у первого в списке....причем надо менять не в TPhoneNode = record а именно у казать ноду индекс картинки под другим номером из imagelist в Viewer: TTreeView я менял вот так Viewer.Items[1].ImageIndex:=4; а как в Virtual Treeview ? помогите |
| Автор: aktuba 2.5.2007, 13:57 |
| В VT есть событие OnGetImageIndex и OnGetImageIndexEx... Они тебе помогут =) |
| Автор: sergey_occnet_ru 2.5.2007, 14:46 |
| procedure TForm1.CLGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer); var PhoneNode: PPhoneNode; begin if Column > 0 then Exit; ImageIndex := -1; PhoneNode := CL.GetNodeData(Node); if Assigned(PhoneNode) then begin ImageIndex := strtoint(PhoneNode^.status); end; end; Уже написано на рисует базовые иконки и этот метод возникает только когда кликаешь по спискам или мышкой проводишь.. а как менять картинки не трогая комонента ну как в аске вам пришло сообщение там мигает напротив человека иконка вот что мне надо сделать кто знает помогите ! |
| Автор: aktuba 2.5.2007, 14:55 | ||||
Самому апдейтить ноды, например по таймеру или по своим событиям.
Там сделано просто - произошло обновление статуса, запустился таймер, который каждые пол секунды обновляет нод и иконку для нода... |
| Автор: sergey_occnet_ru 2.5.2007, 14:56 | ||
| мне нужен пример ! ImageIndex := strtoint(PhoneNode^.status); как это сменить ? вернее как вписать в дату PhoneNode^.status:='2' ???? этот как раз номер иконки в imagelist например в обработчике
пишет ошибку :(( |
| Автор: sergey_occnet_ru 2.5.2007, 16:24 |
| FoundNode := FindNode_PIN(CL.RootNode, '666'); оказалось функция FindNode_PIN ищет только по группа внутрь их не заглядывает поэтому был результат 0 решил проблему ! |