Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Внизотображение в ListBox-е разноцветных строк Найти похожие ветки
← →
Антоныч (2005-01-19 15:12) [0]Привет всем!
Возник у меня небольшая проблема. Окрашиваю элементы в ListBoxе в разные цвета следующей процедурой:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox) do begin
Canvas.FillRect(Rect);
if ItemIndex=0 then Canvas.Font.Color:=clred else
if ItemIndex=1 then Canvas.Font.Color:=clgreen else
Canvas.Font.Color:=clblue;
Canvas.TextOut(Rect.Left,Rect.Top,Items[Index]);
end;
end;
Так вот, элемент окрашивается в свой цвет, только если его выбрать, а первоначально они все отображаются синими. Читал про возникновение события OnDrawItem - дословно: "Возникает, когда программа должна нарисовать очередной элемент". Вроде все верно, а не пашет. Подскажите, пожалуйста, где ошибка.
← →
Александр Иванов © (2005-01-19 15:18) [1]if ItemIndex=0 then Canvas.Font.Color:=clred else
if ItemIndex=1 then Canvas.Font.Color:=clgreen else
Canvas.Font.Color:=clblue;
Отсюда следует, что если Выбран не нулевой и первый, то цвет - clBlue
← →
Антоныч (2005-01-19 15:28) [2]В принципе, верно. На этапе создания формы индекс у списка -1. Но тогда подскажите, как сделать, чтоб они сразу разноцветными отображались?
← →
Антоныч (2005-01-19 15:51) [3]Хотя вообще-то Index в данном случае - это не индекс выбранного, а индекс отображаемого элемента (по документации). Так что где грабли - непонятно.. :)
← →
begin...end © (2005-01-19 16:07) [4]> [3] Антоныч (19.01.05 15:51)
Index в этом обработчике - это индекс прорисовываемого в данный момент элемента. А вот ItemIndex - это индекс выбранного элемента.
Поэтому осталось внимательно посмотреть на свой код (особенно на первую половину). И сразу станет ясно, где грабли.
← →
Плохиш © (2005-01-19 16:08) [5]ItemIndex - это номер выбранного элемента, а использовать тебе надо Index
← →
Антоныч (2005-01-19 16:08) [6]Блин, спасибо большое! Слона-то я и не заметил, как говорится :).
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c