Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

TreeView+картинки ,без ImageList   Найти похожие ветки 

 
Belocarsk   (2004-07-12 07:42) [0]

Доброго времени суток!!!
Каким образом можно отображать иконки без помощи ImageList?
Может кто уже проделывал такое? Конкретно мне нужно заносить из базы данных.


 
Vitalik   (2004-07-12 07:53) [1]

Это в событии OnCustomDrawItem рисовать.


 
Belocarsk   (2004-07-12 08:05) [2]

Енто я понимаю, примерчик бы....


 
Vitalik   (2004-07-12 11:37) [3]

Ну, предлагаю такое решение.
Ты вообще кидаешь на форму TImageList, но никаких иконок в него не добавляешь. И устанавшиваешь этот ImageList у твоего TTreeView (tv). Это надо, чтобы текст Node в дереве сам сдвигался влево, освобождая тебе место для иконки.

Ну и понеслась:

procedure TForm1.tvCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
 State: TCustomDrawState; var DefaultDraw: Boolean);
var
 r: TREct;
begin
r := Node.DisplayRect(true); //Получаем квадрат текста текущего Node
r.Left := r.left - b.Width; //rect.left - это коодината, где начинает рисоваться текст. Но тебе-то нужно рисовать иконку левей (как раз в то пустое место, которое образовалось, когда мы указали для TV пустой ImageList)
tv.Canvas.Draw(r.left, r.top, b); //Вот и рисуем нужную иконку! b у меня TBitmap.
end;

Кстати, ссылку на иконку можно хранить в Node.Data. Тогда будет так

tv.Canvas.Draw(r.left, r.top, TBitmap(Node.Data));


 
Belocarsk   (2004-07-12 11:49) [4]

В принципе есть что-то в этом, попробую по эксперементироватью.
Спасибо Vitalik.


 
DVM ©   (2004-07-12 23:39) [5]


> Belocarsk   (12.07.04 11:49) [4]

А еще могу сказать, что это будет сильно медленнее.
ListView и TreeView, а также ImageList оптимизированы в плане совместной работы так, что превзойти по скорости вряд ли получится.
А кто мешает наполнять ImageList картинками из базы?



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

Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.034 c
4-1087303623
bukerman
2004-06-15 16:47
2004.07.25
??? Компонента для выбора компьютера в сети


1-1089269471
Iraizor
2004-07-08 10:51
2004.07.25
Глуповатый вопрос про SendStream & ProgressBar


1-1089358029
Sur
2004-07-09 11:27
2004.07.25
JPG+EOF+SomeText


1-1089636731
BillyJeans
2004-07-12 16:52
2004.07.25
FileExists();


8-1083361027
Jaja
2004-05-01 01:37
2004.07.25
Звук





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский