Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Virtual Treeview работа с imagelist, Решение проблем с рисованием графики 
V
    Опции темы
sergey_occnet_ru
Дата 2.5.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.5.2007

Репутация: нет
Всего: нет



Вопрос следующий.....
На форме лежит Vt в нем загружены списки
группы с пользователями (как аське и других клиентах)
Так вот как менять номер картинки у определенного нода
например у первого в списке....причем надо менять не в TPhoneNode = record
а именно у казать ноду индекс картинки под другим номером из imagelist
в 
Viewer: TTreeView
 я менял вот так Viewer.Items[1].ImageIndex:=4;
а как в Virtual Treeview ? помогите

Это сообщение отредактировал(а) sergey_occnet_ru - 2.5.2007, 13:21
PM MAIL   Вверх
aktuba
Дата 2.5.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



В VT есть событие OnGetImageIndex и OnGetImageIndexEx... Они тебе помогут =)


--------------------
user posted image
PM MAIL WWW Skype   Вверх
sergey_occnet_ru
Дата 2.5.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.5.2007

Репутация: нет
Всего: нет



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;


Уже написано на рисует базовые иконки и этот метод возникает только когда кликаешь по 
спискам или мышкой проводишь..
а как менять картинки не трогая комонента
ну как в аске вам пришло сообщение там мигает напротив человека иконка
вот что мне надо сделать кто знает помогите !
PM MAIL   Вверх
aktuba
Дата 2.5.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата

а как менять картинки не трогая комонента


Самому апдейтить ноды, например по таймеру или по своим событиям.

Цитата

ну как в аске вам пришло сообщение там мигает напротив человека иконка


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


--------------------
user posted image
PM MAIL WWW Skype   Вверх
sergey_occnet_ru
Дата 2.5.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.5.2007

Репутация: нет
Всего: нет



мне нужен пример !
ImageIndex := strtoint(PhoneNode^.status); как это сменить ?
вернее как вписать в дату PhoneNode^.status:='2'  ???? этот как раз номер иконки в imagelist

например в обработчике
Код

procedure TForm1.CLExpanded(Sender: TBaseVirtualTree; Node: PVirtualNode);
var
  PhoneNode: PPhoneNode;
begin
  PhoneNode := CL.GetNodeData(Node);
  if Assigned(PhoneNode) then
  begin
  if Node = Sender.HotNode then
  begin
  PhoneNode^.groupsee:='open';
  PhoneNode^.Status:='0';
  end;
  end;

end;

их менят а как сменить ее у этого эелемента например на 2 из например простой кнопки

procedure TForm1.Button3Click(Sender: TObject);
var
FoundNode: PVirtualNode;
PhoneNode: PPhoneNode;
begin
if CL.RootNodeCount > 0 then FoundNode := FindNode_PIN(CL.RootNode, '666');
PhoneNode := CL.GetNodeData(FoundNode);
PhoneNode^.Status:='0';
end;

end.


пишет ошибку :((

Это сообщение отредактировал(а) Alexeis - 3.5.2007, 17:17
PM MAIL   Вверх
sergey_occnet_ru
Дата 2.5.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.5.2007

Репутация: нет
Всего: нет



FoundNode := FindNode_PIN(CL.RootNode, '666');
оказалось функция  FindNode_PIN ищет только по группа внутрь их не заглядывает
поэтому был результат 0 решил проблему !
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.