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

Вниз

Про 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.045 c
2-1158667789
KyRo
2006-09-19 16:09
2006.10.08
Залипание клавиш


2-1158233637
Silica
2006-09-14 15:33
2006.10.08
Пароль


15-1158045124
Бугага
2006-09-12 11:12
2006.10.08
Навеяно задачками...


6-1147710288
dmitrlast
2006-05-15 20:24
2006.10.08
Где б найти про IDFTPServer?


2-1158913555
Dr. Genius
2006-09-22 12:25
2006.10.08
Защита DFM-файлов





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