Форум: "Начинающим";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
ВнизПроблема с 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c