Каким будет самый простой и понятный способ показать сфокусированный/выбранный элемент списка в стиле Office XP?
Посмотрите этот пример изображения, чтобы прояснить идею:
Я думаю, мне нужно установить стиль списка в значение lbOwnerDrawFixed
или lbOwnerDrawVariable
, а затем изменить событие OnDrawItem?
Вот где я застрял, я не совсем уверен, какой код туда писать, пока я пробовал:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox).Canvas do
begin
if odSelected in State then
begin
Brush.Color := $00FCDDC0;
Pen.Color := $00FF9933;
FillRect(Rect);
end;
TextOut(Rect.Left, Rect.Top, TListBox(Control).Items[Index]);
end;
end;
Я должен был знать, что это не сработает, со мной происходят всякие странные вещи:
Что я делаю неправильно, и что еще более важно, что мне нужно изменить, чтобы заставить его работать?
Спасибо.