Вниз
Скачать: CL | DM;

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

← →
Igor_thief   (2004-12-19 16:58) [0]

Как сделать такое? Есть ListBox. В нем выделен один элемент. При движении мишки над Listbox"om надо чтобы элементы находящийся под курсором мишки подсвечивался (только подсвечивался, а не ставал активным).


← →
begin...end ©   (2004-12-19 17:03) [1]

> Igor_thief   (19.12.04 16:58)

Думаю, что копать нужно в сторону TListBox.OnMouseMove и TListBox.ItemAtPos.


← →
begin...end ©   (2004-12-19 17:05) [2]

> Igor_thief

Кстати, а TListView не подойдёт? Там уже есть свойство HotTrack.


← →
antonn ©   (2004-12-19 17:39) [3]


> Igor_thief   (19.12.04 16:58)  

Так, что ли?

var track:integer;

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
With ( Control As tListBox ).Canvas Do  Begin
 if Index=track then begin
     Font.Color  := 204;
     Brush.Color := 14737663;
 end else begin
     Font.Color  := clWindowText;
     Brush.Color := clWindow;
 end;
   FillRect(Rect);
   TextOut(Rect.Left, Rect.Top, ( Control As tListBox ).Items.Strings[index]);// +"  "+ pWWW_Conn(List_Conn.Items.Objects[ index ])^.sss);
 end;
end;

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
  track:= y div ( Sender As tListBox ).ItemHeight;
  ( Sender As tListBox ).Invalidate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 ListBox1.DoubleBuffered:=true;
end;


← →
Igor_thief   (2004-12-20 11:44) [4]

begin...end ©   (19.12.04 17:05) [2]
Не подойдет.

begin...end ©   (19.12.04 17:03) [1]
Это понятно. Но как в OnMouseMove перепрорисовывать конкретный элемент под мышкой?


← →
Igor_thief   (2004-12-20 11:45) [5]

antonn ©   (19.12.04 17:39) [3]
ЧТо-то похожее, но чтобы не терялся выделенный элемент!


← →
Igor_thief   (2004-12-20 11:56) [6]

antonn ©   (19.12.04 17:39) [3]
Спасибо за идею. Я этот код немного приукрашу и все будет работать как надо.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
1-1103289119
bloodman
2004-12-17 16:11
2005.01.02
буфер обмена + DOS программа


14-1102806552
123
2004-12-12 02:09
2005.01.02
Как правильно настроить firewall?


14-1102509436
Alexander Panov
2004-12-08 15:37
2005.01.02
Победа Януковича. Противостояние. (продолжение. Часть 3)


1-1103184634
aleshap
2004-12-16 11:10
2005.01.02
Каким образом можно сбросить буфер нажатых клавиш


1-1103203996
socol
2004-12-16 16:33
2005.01.02
перевод в другой вид представления




   Наверх