![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ListBox... [D7]
ArtemESC © (2006-03-01 02:07:00)Доброго времени суток...
Все время забываю это свойство в режиме прорисовки -
после выделения строки, на ней остается как-бы отпечаток-
как от этого избавится?
Джо (2006-03-01 08:49:00) [1]Если рамку фокуса, то можно при OwnerDraw отрисовывать в таком роде:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with TListBox(Control).Canvas do
begin
if odSelected in State then
begin
Brush.Color := clActiveCaption;
Font.Color := clHighlightText;
end
else
begin
Brush.Color := clWindow;
Font.Color := clWindowText;
end;
ListBox1.Canvas. FillRect (Rect);
TextOut(Rect.Left,Rect.Top,TListBox(Control).Items[Index]);
// рамку затираем только на выделенной строке
if (odSelected in State) and (odFocused in State) then
DrawFocusRect (Rect);
end;
end;
antonn (2006-03-01 08:14:00) [2]наверное рамка фокуса...
Джо (2006-03-01 06:22:00) [3]Что такое "как бы отпечаток"? Если честно, не замечал такого никогда. Может, уточнишь?