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

Вниз

Как изменить высоту элемента TListBox?   Найти похожие ветки 

 
@!!ex ©   (2010-10-23 18:06) [0]

Этот вопрос возникал у меня несколько месяцев назад и я его здесь уже задавал.
Если не ошибаюсь АП, дал мне на него вот такой ответ:
ItemEx.mask := TVIF_INTEGRAL;
ItemEx.hItem := Node.ItemId;
ItemEx.iIntegral :=4;
SendMessage (TreeView.Handle, TVM_SETITEMA, 0, LPARAM(@ItemEx));

И это действительно работало, до тех пор пока мы не запустили прогу на Windows 7.

Дело в том, что в список элементы добавляются пачкой. И чтобы все не тормозило, используем BeginUpdate, EndUpdate.
Беда в том, что указанный выше код вызывает перерисовку всего дерева.
То есть добавление элементов в семерке тормозит адски.
Искал решение в интернете. Нашел событие MeasureItem, которое теоретически делает то что нужно...
Но такого события у ListBox"a в TDE 2006 просто нету.
Как быть?

Есть ли другой способ?
или как обрабатывать события, которые в VCL не реализованы?


 
Sapersky   (2010-10-23 23:02) [1]

Смешались в кучу списки, дрЕва... ну будем считать, что речь всё-таки о TreeView, тем более что есть сообщения о проблеме с тормознутостью TVM_SETITEM в Win7:
http://groups.google.com/group/microsoft.public.vc.mfc.docview/browse_thread/thread/3e401b1ce842abc9
Там предлагают добавлять элементы через TVM_INSERTITEM, при этом можно сразу указать высоту.
Если высота элементов одинаковая, можно ещё попробовать TVM_SETITEMHEIGHT.


 
@!!ex ©   (2010-10-24 22:03) [2]

Ай да, да.
Действительно речь о дереве.
Переклинило на списке, не знаю почему...

Я и в гугле по TListBox искал... Вот и не нашел что нужно.
Видимо работать в выходные - плохая идея. :)


 
@!!ex ©   (2010-10-24 23:06) [3]

Размер разный.
Точнее их два:
1) элементы без картинки.
2) Элементы с картинкой.

Задача проста:
сделать дерево контента в редакторе.
например:
модели
 +-модель1
   [здесь картинка превьюшка, размер элемента большой]
  -модель2
   [здесь картинка превьюшка, размер элемента большой]
звуки
 +-
 звук1
  [никакой превьюшки нет, размер элементы обычный]

TVM_INSERTITEM - подвесило у меня программу и похоже не дружит с VCL

Item.mask:=TVIF_TEXT or TVIF_PARAM;
     Item.pszText:=PChar(string(FNDDATA.cFileName)+"("+GetModelDescription(ModelsPrefix+path+FNDDATA.cFileName)+")"+#0);
     Item.cchTextMax:=Length(string(FNDDATA.cFileName)+"("+GetModelDescription(ModelsPrefix+path+FNDDATA.cFileName)+")"+#0);
     FileName:="\"+path+string(FNDDATA.cFileName);
     Pointer(Item.lParam):=TPreviewItem.Create;

     ItemEx.mask := TVIF_INTEGRAL;
     ItemEx.hItem := Node.ItemId;
     ItemEx.iIntegral :=4;

     newItem.hParent:=TreeNode.ItemId;
     newItem.hInsertAfter:=TVI_LAST;
     newItem.itemex:=ItemEx;
     newItem.item:=Item;

     SendMessage (TreeView.Handle, TVM_INSERTITEM , 0, LPARAM(@newItem));



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

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

Наверх





Память: 0.46 MB
Время: 0.004 c
15-1285865919
картман
2010-09-30 20:58
2011.01.16
я думал там все на века(((


15-1282397426
Константинов
2010-08-21 17:30
2011.01.16
ремонт принтера


15-1285947386
Дмитрий Тимохов
2010-10-01 19:36
2011.01.16
Создание и запись образов CD из командной строки


2-1287766980
volkafff
2010-10-22 21:03
2011.01.16
Обращение ко всем записям.


2-1287920088
George
2010-10-24 15:34
2011.01.16
TABOrder и фреймы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский