Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в ListBox определить количество строк видимых на экране? [D6, Win2k]


Mishenka ©   (2005-12-13 20:01:00) 

Как в ListBox определить количество строк видимых на экране?


Leonid Troyanovsky   (2005-12-14 09:31:00) [1]


> Mishenka   (13.12.05 20:01)  
> Как в ListBox определить количество строк видимых на экране?


Индекс верхней видимой строки:

t := ListBox.Perform(LB_GETTOPINDEX, 0, 0);

Индекс последней видимой строки:

 with ListBox do
    b := LoWord(Perform(LB_ITEMFROMPOINT, 0, MakeLParam(0, ClientHeight)));

--
Regards, LVT.


Джо   (2005-12-14 01:21:00) [2]

Если "строго" подходить, то нужно еще учитывать случай окончания списка, то есть, определять по остаток по TopIndex и концу списка и эту разницу учитывать в значении, определяемом begin...end.


begin...end   (2005-12-13 20:18:00) [3]

Думаю, что можно определить только приблизительно, "в лоб":

Count := Min(Round(ListBox.ClientHeight / ListBox.ItemHeight), ListBox.Count)


Наверх

Титульная страница Поиск, карта сайта Написать письмо