3
그래서 TListBox
(TListView
아님) 항목을 세로로 가운데에 맞추고 싶습니다.TListBox 항목을 세로로 가운데 맞추는 방법은 무엇입니까?
나는 TopIndex
속성을 사용할 수 있지만 어떻게해야합니까?
스크롤 막대가 표시되지 않는 항목이 적은 경우 가운데 맞춤이 필요하지 않으므로 기본 항목 만 선택하면됩니다. 이 같은
뭔가 :
그래서 TListBox
(TListView
아님) 항목을 세로로 가운데에 맞추고 싶습니다.TListBox 항목을 세로로 가운데 맞추는 방법은 무엇입니까?
나는 TopIndex
속성을 사용할 수 있지만 어떻게해야합니까?
스크롤 막대가 표시되지 않는 항목이 적은 경우 가운데 맞춤이 필요하지 않으므로 기본 항목 만 선택하면됩니다. 이 같은
뭔가 :
//IF YOU WANT TO SELECT THE CENTER ITEM
procedure TForm2.Center;
var VisibleItems : Integer;
begin
VisibleItems := ListBox1.ClientHeight div ListBox1.ItemHeight;
ListBox1.TopIndex := Trunc((ListBox1.Items.Count/2) - (VisibleItems/2));
if ListBox1.Items.Count > VisibleItems then
ListBox1.Selected[ListBox1.TopIndex + (VisibleItems div 2)] := True
else
ListBox1.Selected[ListBox1.Items.Count div 2] := True;
end;
//IF YOU WANT TO CENTER A ITEM
procedure TForm2.Center(Index : Integer);
var VisibleItems : Integer;
begin
VisibleItems := ListBox1.ClientHeight div ListBox1.ItemHeight;
if Index > VisibleItems then
ListBox1.TopIndex := Index - (VisibleItems div 2);
end;
는 부동 소수점 값을 계산하기 위해 필요합니까? 'div'만으로 충분하지 않을까요? –
또한 나는 OP가 수직 중앙 항목을 선택하려고하지 않고 선택한 항목을 수직 가운데 정렬한다고 생각합니다. –
당신은 div에 대해 옳았습니다. 코드의 일부분을 변경했습니다. 수직 중심 아이템을 선택하는 대신 선택한 아이템을 수직으로 가운데 맞추기를 원한다면이 대답을 변경하거나 제거 할 것입니다. – Kohull