Главная страница
    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.003 c
2-1287647224
mfender
2010-10-21 11:47
2011.01.16
ADODataSet. Ошибка неизвестного типа


6-1233263581
Josh
2009-01-30 00:13
2011.01.16
Утечка памяти при мультипоточном сканировании сети NetShareEnum


15-1285896207
wl
2010-10-01 05:23
2011.01.16
Антивирус for free


2-1287920383
George
2010-10-24 15:39
2011.01.16
Горячие клавиши и фреймы


2-1287571571
Scott Storch
2010-10-20 14:46
2011.01.16
вопрос по дженерикам





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