Главная страница
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.49 MB
Время: 0.05 c
1-1156793871
Fatefell
2006-08-28 23:37
2006.10.08
Декомпилятор из паскаля


2-1158328792
Pa5ha
2006-09-15 17:59
2006.10.08
StrToFloat и языковые стандарты


2-1158663211
Уч
2006-09-19 14:53
2006.10.08
При сохранении изменяются значения Float-полей


2-1158699951
Sergioni
2006-09-20 01:05
2006.10.08
tstrings


2-1158321253
Xmen
2006-09-15 15:54
2006.10.08
Проблемы при организации базу данных по компьютерной технике