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

Цветные строки в ListView   Найти похожие ветки 

 
tytus ©   (2003-08-11 11:50) [0]

Привет ВСЕМ. Помогите разобраться. Как в ListView писать цветные строки? Идея такая - в ListView пишу имена файлов в директории (FindFirstFile и FindNextFile); Нужно файли с разным расширением написать разным цветом.
private
SF:_WIN32_FIND_DATA;

Процедуру чтения файлов и заполнения ListView не привожу так как работает нормально и чтобы не заполнять ненужным текстом. В ListView все пишеться черным цветом.

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if SF.dwFileAttributes=16 then //это папка, 7 - это *.sys
ListView1.Canvas.Font.Color:=clRed;
end;

Или не срабатывает if SF.dwFileAttributes=16 then или нужно писать по другому...


 
Юрий Федоров ©   (2003-08-11 12:12) [1]

DefaultDraw:=false ???
и ListView1.Canvas.TextOut()...
наверно так


 
Skier ©   (2003-08-11 12:20) [2]

if (SF.dwFileAttributes and FILE_ATTRIBUTE_SYSTEM) <> 0 then...


 
tytus ©   (2003-08-11 12:33) [3]

Юрий Федоров
DefaultDraw:=false ???
и ListView1.Canvas.TextOut()...
наверно так

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
DefaultDraw:=false;
if SF.dwFileAttributes=16 then
begin

ListView1.Canvas.Font.Color:=clRed;
ListView1.Canvas.TextOut(10,10,SF.cFileName);
end ;


 
Семен Сорокин ©   (2003-08-11 12:37) [4]

2tytus
скорее всего не срабатывает SF.dwFileAttributes=16, проверь точкой останова на строчке ListView1.Canvas.Font.Color:=clRed;
и вариант от Skier © (11.08.03 12:20)
а DefaulDraw не надо в false выставлять, если меняешь св-ва канвы.


 
tytus ©   (2003-08-11 12:48) [5]

2 all:
Если в основную процедуру (бутонклик) вставляю
ListView1.Items.Add.Caption:=SF.cFileName;
то пишет черным цветом,если ее убираю, то так вообще ничего не выводит.

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if SF.dwFileAttributes=16 then
begin
ListView1.Canvas.Font.Color:=clRed;
ListView1.Canvas.TextOut(10,n,SF.cFileName);
end
else
begin
ListView1.Canvas.Font.Color:=clBlack;
ListView1.Canvas.TextOut(0,n,SF.cFileName);
end;
end;



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

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



Память: 0.46 MB
Время: 0.022 c
1-81638
BillyJeans
2003-08-12 14:02
2003.08.25
Как узнать с какого контрола перешел фокус на текущий?


14-81890
Viktor Kushnir
2003-08-08 09:16
2003.08.25
Internet via e-mail


14-81911
vopros
2003-08-07 14:29
2003.08.25
Люди помогите c Indy.Надо файл-вложения сделать.


14-81960
acsoft
2003-07-30 07:31
2003.08.25
OnHint


6-81858
Volly
2003-06-18 13:57
2003.08.25
Отключение от Internet-а




   Наверх