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

Пытаюсь изменить цвет фона элементов Listbox a   Найти похожие ветки 

 
c13   (2003-08-28 07:49) [0]

Пытаюсь изменить цвет фона некоторых (в зависимости) элементов Listbox"a, но при изменении цвета изменятся фон всех элементов. Помогите, пожалуйста, разрешить эту проблему. (Хорошо бы код привести)


 
c13   (2003-08-28 07:50) [1]

...фона некоторых (в зависимости ОТ ТЕКСТА В НИХ) элементов Listbox"a...


 
KSergey ©   (2003-08-28 08:02) [2]

А может напишете, как это вы делаете?
Не проверял, но сделал бы так (этот кусок на основе переделки изменения цвета шрифта для разных строк)

// обработчик OnDrawItem ListBox"а
// lbxFuncList - это название ListBox"а у меня
// свойство ListBox.Style = lbOwnerDrawFixed

procedure TRoleEditFrm.lbxFuncListDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
pItemData := PRecListData(lbxFuncList.Items.Objects[Index]);
with lbxFuncList.Canvas do
begin
Brush.Color := clRed; // устанавливаем цвет фона какой надо
FillRect (Rect); // закрашиваем тек. строку
Inc(Rect.Top);
Inc(Rect.Left); // уст. позицию для выводжа текста
TextOut (Rect.Left, Rect.Top, lbxFuncList.Items[Index]); // вывод собственно текста можно вывести произвольно другой текст
end;
end;


// обработчик OnDrawItem ListBox"а
// lbxFuncList - это название ListBox"а у меня
// свойство ListBox.Style = lbOwnerDrawFixed

procedure TRoleEditFrm.lbxFuncListDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
with lbxFuncList.Canvas do
begin
Brush.Color := clRed; // устанавливаем цвет фона какой надо
FillRect (Rect); // закрашиваем тек. строку
Inc(Rect.Top);
Inc(Rect.Left); // уст. позицию для выводжа текста
TextOut (Rect.Left, Rect.Top, lbxFuncList.Items[Index]); // вывод собственно текста можно вывести произвольно другой текст
end;
end;


Вообще-то есть подозрение, что дожно проканать что-то такое, но надо проверять:

// предполагаем, что свойство ListBox.Style = lbStandart

procedure TRoleEditFrm.lbxFuncListDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
lbxFuncList.Canvas.Brush.Color := clRed; // устанавливаем цвет фона какой надо
end;


Но это надо проверять...


 
KSergey ©   (2003-08-28 08:03) [3]

2 раза скопировал, извиняюсь



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

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



Память: 0.46 MB
Время: 0.015 c
11-24393
Admin_KOL
2002-06-27 17:34
2003.09.08
Старый форум


1-24446
Skier
2003-08-25 12:52
2003.09.08
---|Ветка была без названия|---


9-24291
DeadMeat
2003-02-14 20:21
2003.09.08
GLScene и анимация...


1-24496
PrettyFly
2003-08-27 10:49
2003.09.08
ListView с фоновым рисунком...


3-24313
Buka
2003-08-14 22:52
2003.09.08
Locate в ADO? Работает ли?




   Наверх