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

Вниз

Про Listbox   Найти похожие ветки 

 
kirik   (2006-09-15 14:35) [0]

Есть ListBox. А как сделать так, чтобы выделялась всегда самая последняя видимая строчка?


 
kirik   (2006-09-15 14:45) [1]

И ещё, как определить строчку, на которой находится мышь?


 
Zeqfreed ©   (2006-09-15 14:49) [2]

if (ListBox.Items.Count > 0) then
 ListBox.ItemIndex := ListBox.Items.Count - 1;

ListBox.ItemAtPos();


 
kirik   (2006-09-15 14:52) [3]

Я имею в виду мышь движущаяся, а не выделенную строчку...
И не ПОСЛЕДНЮЮ ЗАПИСЬ, а ПОСЛЕДНЮЮ ВИДИМУЮ в данном месте листа... то есть в нижний край...


 
Zeqfreed ©   (2006-09-15 14:56) [4]

> Я имею в виду мышь движущаяся, а не выделенную строчку...

ListBox.ItemAtPos();


> И не ПОСЛЕДНЮЮ ЗАПИСЬ, а ПОСЛЕДНЮЮ ВИДИМУЮ в данном месте
> листа... то есть в нижний край...

ListBox.ItemAtPos();


 
kirik   (2006-09-15 14:58) [5]

Хорошо, пусть так. Ну а как я узнаю индекс последнего видимого итема? Height div ItemHeight?


 
kirik   (2006-09-15 14:59) [6]

О как...


 
Джо ©   (2006-09-15 14:59) [7]

Можно еще через TopIndex.


 
kirik   (2006-09-15 15:01) [8]

Это чего такое?
Кстати, она у меня только фокус выделения рисует :(


 
Zeqfreed ©   (2006-09-15 15:17) [9]

function SelectBottommostVisibleItem(ListBox : TListBox) : Integer;
var
 Idx : Integer;
 p : TPoint;
begin
 Result := -1;
 if not (ListBox is TListBox) then Exit;

 with ListBox do begin
  p.X := 1;
  p.Y := ClientHeight - 1;
  Idx := ItemAtPos(p, false);

  if (Idx < Items.Count) then
   ItemIndex := Idx
  else if (Items.Count > 0) then
   ItemIndex := Idx - 1;
 end;

 Result := ListBox.ItemIndex;
end;



> Кстати, она у меня только фокус выделения рисует :(

Кто она?


 
Джо ©   (2006-09-15 16:35) [10]

> [8] kirik   (15.09.06 15:01)
> Это чего такое?
> Кстати, она у меня только фокус выделения рисует :(

Это, если на то пошло, не "она", а "оно" — т.е., свойство. Повзоляет получить/установить индекс ПЕРВОГО видимого эл-та.


 
Джо ©   (2006-09-15 16:46) [11]

Ну, и в связи с наличием свойства, искомый код будет выглядеть как-то так:

function GetBottomIndex (Lb: TListBox): Integer;
begin
 with Lb do
   Result := TopIndex + (Height div ItemHeight) - 1;
end;



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

Текущий архив: 2006.10.08;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.045 c
15-1158160397
Слоник
2006-09-13 19:13
2006.10.08
Равноудаление и все-все-все


2-1158425181
PSPF2003
2006-09-16 20:46
2006.10.08
StrToHex?


1-1156861286
cod3r
2006-08-29 18:21
2006.10.08
ComPort Library - работа с com-портом


2-1158316531
kirik
2006-09-15 14:35
2006.10.08
Про Listbox


15-1158433811
DillerXX
2006-09-16 23:10
2006.10.08
Ни-ти-вонипонимаю :-((





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