Вниз
Скачать: 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.013 c
1-81694
Miralex
2003-08-11 12:59
2003.08.25
Mouse right click


9-81518
C-D
2003-02-23 17:50
2003.08.25
Нужен алгоритм поиска путей в графе...


4-82023
MishaS
2003-06-24 13:51
2003.08.25
Как не допустить копирования в TEdit не цифр


14-81952
iXuSs [real #1]
2003-08-05 23:24
2003.08.25
М-да...


9-81527
Антон
2003-02-18 04:51
2003.08.25
Помогите кто может




   Наверх