Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

ListBox   Найти похожие ветки 

 
Лана Розанова ©   (2003-11-26 20:38) [0]

Возможно ли как-то подсветить строчку или фон в ListBox, к примеру красным цветом?
СПАСИБО!!!


 
Лана Розанова ©   (2003-11-26 20:46) [1]

Простите, я напутала. Не ListBox, а ListView.


 
SancheS ©   (2003-11-26 21:43) [2]

Через событие TListView.DrawItem


 
Лана Розанова ©   (2003-11-27 00:34) [3]

А где там указать про цвет!? Я не нашла.


 
Лана Розанова ©   (2003-11-27 00:45) [4]

Получается только все в красный перевести.

...
List_ProdashaDrawItem(List_Prodasha,List_Prodasha.Items.Item[i],r_rect,o_owner);
...

procedure TPredProdForm.List_ProdashaDrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
Sender.Brush.Color:=clRed;
end;


 
Dimaxx ©   (2003-11-27 01:40) [5]

Добавить к вышеуказанному примеру FillRect(Rect), а поверх вывести текст нужного цвета.


 
Dimaxx ©   (2003-11-27 01:42) [6]

Да, забыл. Нужно проверять Item (например, индекс) на соответствие. Ну, типа, что именно тот отрисовать красным, а не все подряд.


 
Лана Розанова ©   (2003-11-27 21:25) [7]

Что-то я совсем запуталась и ничего не получается... FillRect(Rect) как использовать, я не поняла?


 
panov ©   (2003-11-27 23:14) [8]

Всё прекрасно описано в Help. там даже работающий пример есть.


 
Sam Stone ©   (2003-11-27 23:35) [9]

Хм, у меня подобная проблема была. Я в customdraw смотрел, нужно ли этот элемент выделять, если да - менял цвет. Только вот какой гемор получился: ListView жутко моргал :( Как этого избежать?

2Лана Розанова
что-то типа этого:
if <Условие(например, выбор по ноиеру итема)> then
ListView.color:=<Каким цветом написать>
else
ListView.color:=<Дефолтовый цвет>;


 
Лана Розанова ©   (2003-12-02 09:22) [10]

>panov
Можно было бы и вырезать пример, если вы его нашли.


 
Семен Сорокин ©   (2003-12-02 09:44) [11]

Sam Stone © (27.11.03 23:35) [9]
ListView жутко моргал :( Как этого избежать?
не присваивать ListView.color в onDraw т.к. это вызывет перерисовку (получается бесконечная рекурсия)


 
Семен Сорокин ©   (2003-12-02 09:46) [12]

2Лана Розанова ©

List_ProdashaDrawItem(List_Prodasha,List_Prodasha.Items.Item[i],r_rect,o_owner);
...

procedure TPredProdForm.List_ProdashaDrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
if Item.Caption = "111" then // надо добавить условие закраски
Sender.Brush.Color:=clRed
end;


 
Лана Розанова ©   (2003-12-02 11:09) [13]

>Семен Сорокин
Я добавляю три строки. Каптион 2-й строки равен 111. При окончании прорисовки весь ListView окрашивается в красный цвет. А нужна только одна строка. СПАСИБО!!!


 
Silver Alex ©   (2003-12-02 11:22) [14]

вообще-то Семен Сорокин все верно написал, но можно попробовать тоже самое только на событие OnCustomDrawItem, а лучше бы глянуть код


 
Лана Розанова ©   (2003-12-02 11:31) [15]

Я попробую компонент ColorGrid, в кладовке нашла. Надоело с List-ом возиться...


 
panov ©   (2003-12-02 11:55) [16]


procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Item.Caption="111" then
begin
DefaultDraw := True;
Sender.Canvas.Font.Color := clRed;
end;
end;


 
Лана Розанова ©   (2003-12-02 13:08) [17]

Здорово получилось. Но это только цвет текста. А background строчки никак нельзя? Спасибо.


 
panov ©   (2003-12-02 13:25) [18]

Добавь
Sender.Canvas.brush.Color := clBlue;


 
Silver Alex ©   (2003-12-02 13:51) [19]


> panov ©


> DefaultDraw := True;

по умолчанию DefaultDraw равен True ?


 
Лана Розанова ©   (2003-12-02 14:25) [20]

Огромное спасибо. То что нужно. Все, ветка сворачивается...


 
panov ©   (2003-12-02 16:01) [21]

>Silver Alex © (02.12.03 13:51) [19]
да, поумолчаню DefaultDraw - True;



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

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

Наверх




Память: 0.51 MB
Время: 0.018 c
1-36738
Koba
2003-12-01 11:04
2003.12.12
Перемещение формы по экрану.


1-36729
webpauk
2003-12-02 11:38
2003.12.12
Файлы dcu->pas


1-36630
prockrut
2003-12-01 02:09
2003.12.12
Cannot assign a TFont to a TFont


7-36864
Ega23
2003-10-06 14:54
2003.12.12
перехват сообщений


6-36793
sapsi
2003-10-01 09:13
2003.12.12
Команда Ping под Делфи