Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Вниз
Цветные строки в 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 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.024 c