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

Вниз

Почему неправильно работает OnMeasureItem?   Найти похожие ветки 

 
Aleksandr.   (2005-07-12 16:16) [0]

В потомке от TCustomListBox Style устанавливается в lbOwnerDrawVariable, и назначаются обработчики на OnDrawItem, OnMeasureItem. Условие в OnMeasureItem простое:

 if Index=Count-1 then
   Height:=15
 else
   Height:=65

Затем в rt начинаю по одной добавлять строчки - и наблюдается странная картина первая добавленная (и единственная), калькулируется с высотой 15, но когда добавляются еще строчки, то их высота, как и высота первой, тоже остается 15! В какой момент и как правильно вызвать пересчет?


 
Юрий Зотов ©   (2005-07-12 16:27) [1]

Затем в rt начинаю по одной добавлять строчки...

И каждая добавленная строка становится последней. Естественно, для каждой из них выполняется условие Index=Count-1, а в результате у всех строк получаем одинаковую высоту 15.

Не очень понятно, что Вы хотите получить, но похоже, что-то вроде этого:

if Index = 0 then
 Height := 15
else
 Height := 65;


 
Aleksandr.   (2005-07-12 16:58) [2]

Нет, я именно хочу получить высоту = 15 для последнего элемента, а для всех остальных - 65. Я понял, что для каждой добавляемой выполняется условие Index=Count-1, но я не могу понять, как заставить его пересчитать высоту для элементов, которые перестали удовлетворять условию...



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

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

Наверх





Память: 0.44 MB
Время: 0.014 c
2-1135259716
kotbazilio
2005-12-22 16:55
2006.01.15
TDateTimePicker


2-1135339853
oleggar
2005-12-23 15:10
2006.01.15
atoms


14-1135109536
Prohodil Mimo
2005-12-20 23:12
2006.01.15
Что такое УЕ?


2-1135516976
SergProger
2005-12-25 16:22
2006.01.15
FindFirst в сети


14-1134715419
Max Zyuzin
2005-12-16 09:43
2006.01.15
Вопрос пользователям EhLib





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