Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Почему неправильно работает 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
2-1135535261
Spe@ker
2005-12-25 21:27
2006.01.15
работа с базой данных


3-1132220839
Baraban
2005-11-17 12:47
2006.01.15
Делфи и Mysql


3-1132235404
CasperR
2005-11-17 16:50
2006.01.15
ODAC for Delphi 2005


1-1134159570
Free0n
2005-12-09 23:19
2006.01.15
Кто может и кого возникнут оригинальные идеи посоветуйте...


14-1134751968
KvORubin
2005-12-16 19:52
2006.01.15
Ув. Знатоки !!! подскажите коротким словом