![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Привет, форумчане!
Замыслил я в своей программе (это база данных) сделать банальную, казалось бы, вещь - поставить изображения в узлах дерева иерархии. Специфика в том, что это дерево иерархии формируется динамически - наименования узлов берутся из трёх связанных таблиц. В этих же таблицах есть поля с изображениями, и эти изображения должны появляться в узлах дерева. Я взял компонент ImageList, привязал его к дереву. Далее: - создаём новый узел; текстовое наименование его берём из таблицы; - из этой же таблицы берём изображение и добавляем его в ImageList. Поле изображения визуализируется в скрытом компоненте TDBImage; оттуда и берётся изображение; - к только что созданному узлу привязываем изображение (указываем полученный при вставке номер изображения). Упрощённый (без лишней ерунды) код: Код:
var
imIndex: integer;
n1: TTreeNode;
n1 := tree.Items.Add(nil, fq1.FieldByname('Naimen').AsString);//Создаём корневой узел
imIndex := imlt.Add(im1.Picture.Bitmap, nil);//Добавляем изображение в ImageList. Вот здесь - выскакивает ОШИБКА.
n1.ImageIndex := imIndex;//Для только что добавленного узла
n1.SelectedIndex := imIndex;//указываем номер изображения в ImageList |
|
#2
|
|||
|
|||
|
А у тебя точно битмап там лежит?
Попробуй создать отдельно битмап, отрисуй на нем im1.Picture.Graphic и уже этот битмап засовывай в лист. |
|
#3
|
||||
|
||||
|
Спасибо за подсказку! В ходе решения задачи этим методом я и увидел свой косяк, а именно - по старой привычке, для ускорения процесса, отключил DataSource, через который происходит визуализация всех полей, включая и графическое. А то я смотрю - размеры "imlt.Height" и "imlt.Width" почему-то при тестовой проверке оказывались = 0... Теперь всё отлично, спасибо! Напрямую через TDBImage (точнее, через TDBImageEh) всё шпарит как положено)
|
|
#4
|
|||
|
|||
|
Всегда пожалуйста
![]() |