Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.31;
Скачать: CL | DM;

Вниз

Проблема с TTreeView в Delphi 2009   Найти похожие ветки 

 
Phoenix ©   (2009-12-09 14:39) [0]

Доброго времени суток. Начал осваивать Delphi 2009 и возникла такая проблема. Есть некий TTreeView с подключённым TImageList где имеется набор иконок. В TTreeView через метод TVModulGetImageIndex указываю какой индекс иконки присвоить. Всё нормально. Но стоит в заполненом дереве щёлкнуть на любой элемент, как изображение иконки на дереве меняется с нужной на ту что стоит в TImageList под индексом 0. Ничего понять не могу. Новая форма, обработчиков на onChange  и onClick нет. В чём может быть причина?


 
Медвежонок Пятачок ©   (2009-12-09 14:44) [1]

причина может быть в содержимом TVModulGetImageIndex


 
Phoenix ©   (2009-12-09 14:47) [2]


> причина может быть в содержимом TVModulGetImageIndex

Содержимого там одна стрка
Node.ImageIndex:=PModul(Node.Data).id+1;
Это уже сомтрел. Даже если руками выставляю
Node.ImageIndex:=5 то изначально проставляются картинки под индексом 5 но при клике скидываются на 0 :(


 
Медвежонок Пятачок ©   (2009-12-09 14:48) [3]

Содержимого там одна стрка

тем лучше.
она и есть причина странностей


 
clickmaker ©   (2009-12-09 14:49) [4]

нефигово бы еще SelectedIndex задать


 
MBo ©   (2009-12-09 14:49) [5]

OnGetSelectedIndex


 
Phoenix ©   (2009-12-09 14:52) [6]


> нефигово бы еще SelectedIndex задать

Задал , результат тот же.
procedure TfrmMain.TVModulGetImageIndex(Sender: TObject; Node: TTreeNode);
begin
 Node.ImageIndex:=5
end;

procedure TfrmMain.TVModulGetSelectedIndex(Sender: TObject; Node: TTreeNode);
begin
 Node.ImageIndex:=5;
end;

Так же скидывает на 0 .


 
Медвежонок Пятачок ©   (2009-12-09 14:54) [7]

можно еще погрешить на имаджлист.
у меня в определенных ситуациях он неверно отдает битмап.
дорисовывает нулевой, хотя индекс нужного иной.
я в таких случаях нулевым битмапом в имаджлисте использую фиктивный прозрачный


 
Phoenix ©   (2009-12-09 14:55) [8]


> можно еще погрешить на имаджлист.у меня в определенных ситуациях
> он неверно отдает битмап.дорисовывает нулевой, хотя индекс
> нужного иной.я в таких случаях нулевым битмапом в имаджлисте
> использую фиктивный прозрачный

Но проблему это не решает к сожалению - нужная иконка не отображатся.


 
Медвежонок Пятачок ©   (2009-12-09 15:00) [9]

что не решает?


 
Медвежонок Пятачок ©   (2009-12-09 15:02) [10]

заведи у узла визуальный атрибут и вписывай в него текущий имаджиндекс.
Сразу будет видно кто именно косячит.
Либо твой код, который присваивает не то, когда узел в фокусе/не в фокусе.
Либо имаджлист


 
Phoenix ©   (2009-12-09 15:08) [11]


> заведи у узла визуальный атрибут и вписывай в него текущий
> имаджиндекс.Сразу будет видно кто именно косячит.Либо твой
> код, который присваивает не то, когда узел в фокусе/не в
> фокусе.Либо имаджлист

Сделал. Мда. Отображает что ImageIndex соответсвует заданному, почему отображает неверно это вопрос.


 
Медвежонок Пятачок ©   (2009-12-09 15:09) [12]

это уже ответ.
горбит имаджлист


 
Phoenix ©   (2009-12-09 15:10) [13]


> это уже ответ.горбит имаджлист

Отсюда вопрос - этот момент как то можно поправить?


 
Медвежонок Пятачок ©   (2009-12-09 15:11) [14]

я же написал как это пофиксено у меня


 
Медвежонок Пятачок ©   (2009-12-09 15:15) [15]

самый первый битмап в имаджлисте у меня - прозрачный.
я подобную ошибку заметил у себя когда поверх правильногно битмапа рисовался самый первый (нулевой)
он был тоже частично прозрачный, поэтому я сразу видел, что нужный мне все же рисуется, а не просто тупо рисуется только нулевой


 
Phoenix ©   (2009-12-09 15:22) [16]

Разобрался. надо в GetSelectedIndex присваивать не imageindex а SelectedIndex тогда всё работает как надо



Страницы: 1 вся ветка

Текущий архив: 2010.01.31;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
15-1259417380
koha!
2009-11-28 17:09
2010.01.31
Доступн для скачивания новый openSUSE11.2


2-1260081712
AIK
2009-12-06 09:41
2010.01.31
ms SQl server не отображает русские буквы


3-1233777154
Noir
2009-02-04 22:52
2010.01.31
Обновление


1-1234880388
Константин
2009-02-17 17:19
2010.01.31
Перевод ASCI в HEX и наоборот?


6-1211916995
Darth Avenger
2008-05-27 23:36
2010.01.31
ServerSocket и ClientSocket - "склеивание" принятых строк