![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Строки в ListBox разными цветами [D7, WinXP]
kyn66 © (2005-08-29 16:30:00)Пытаюсь нарисовать в листбоксе строки разными цветами таким образом:
Listbox1.Items.AddObject(Edit1.Text, Pointer(StrToInt(Edit2.Text)));
ListBox1.Perform(LB_SETTOPINDEX, Pred(ListBox1.Items.Count), 0);
procedure TMainFrm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
l: Integer;
t: String;
begin
with ListBox1 do
begin
if Integer(Items.Objects[Index]) = 1 then
Font.Color := clRed
else
Font.Color := clBlack;
Canvas.FillRect(Rect);
t := Items[Index];
l := Rect.Right - Canvas.TextWidth(t) - 1;
Canvas.TextOut(l, Rect.Top, t);
end;
end;
При добавлении итемов, они начинают мерцать как гирлянда, что это такоеможет быть?
Не знаю, ешшо добавлено это, но оно наверное не причем:
procedure TMainFrm.FormResize(Sender: TObject);
begin
ListBox1.Repaint;
end;
kyn66 (2005-08-29 17:01:00) [1]>> Да ! Canvas.Font.Colorпомогло ! А что это было?
Pearled (2005-08-29 16:39:00) [2]вместо этого
Font.Color := clRed
else
Font.Color := clBlack;
напиши
Canvas.Font.Color := clRed
else
Canvas.Font.Color := clBlack;
begin...end (2005-08-29 16:37:00) [3]> kyn66 © (29.08.05 16:30)
> При добавлении итемов, они начинают мерцать как гирлянда
Они в цикле добавляются, что ли? И LB_SETTOPINDEX -- тоже в цикле?