Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.08;
Скачать: 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 вся ветка

Текущий архив: 2003.09.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
3-24346
Алексей Петухов
2003-08-16 18:33
2003.09.08
Итоги и ApplyUpdate


3-24365
kuchumovkv
2003-08-16 23:02
2003.09.08
Выборка по дате


3-24381
Alexei Sviridov
2003-08-15 02:31
2003.09.08
DBGrid


11-24399
nsvi
2002-12-24 14:16
2003.09.08
Как расширить емкость TKOLMemo


1-24467
Василий Петрович
2003-08-27 20:23
2003.09.08
Проблема: мигает форма