Форум: "Основная";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
ВнизЦвет колоны в ListView Найти похожие ветки
← →
.ruslan © (2006-06-06 11:42) [0]Как изменить цвет определённой колоны в ListView?
← →
ЮЮ © (2006-06-06 11:51) [1]См. справку по TCustomListView.OnCustomDrawXXX
← →
.ruslan © (2006-06-06 15:26) [2]не разобрался...
можно кодом?
← →
.ruslan © (2006-06-07 18:56) [3]а просто увет текста одной колоны как сметить*
← →
ЮЮ © (2006-06-08 04:40) [4]Брось на форму ListView и назначь обработчики:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TForm1 = class(TForm)
ListView1: TListView;
procedure FormCreate(Sender: TObject);
procedure ListView1AdvancedCustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
Stage: TCustomDrawStage; var DefaultDraw: Boolean);
procedure ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i, j, n, m: integer;
lc: TListColumn;
li: TListItem;
begin
m := 4;
ListView1.ViewStyle := vsReport;
for i := 0 to m - 1 do begin
lc := ListView1.Columns.Add;
lc.Alignment := TAlignment(i);
lc.Caption := "Column " + IntToStr(i);
lc.Width := ListView1.ClientWidth div m;
end;
n := 5;
for i := 0 to n - 1 do begin
li := ListView1.Items.Add;
li.Caption := IntToStr(i) + ", 0";
for j := 1 to m - 1 do
li.SubItems.Add(IntToStr(i) + "," + IntToStr(j));
end;
end;
procedure TForm1.ListView1AdvancedCustomDrawSubItem(
Sender: TCustomListView; Item: TListItem; SubItem: Integer;
State: TCustomDrawState; Stage: TCustomDrawStage;
var DefaultDraw: Boolean);
begin
if SubItem = 1 then
TListView(Sender).Canvas.Font.Color := clRed
else
TListView(Sender).Canvas.Font.Color := clBlack;
if SubItem = 2 then
TListView(Sender).Canvas.Brush.Color := clYellow
else begin
if cdsSelected in State then
TListView(Sender).Canvas.Brush.Color := clSilver
else
TListView(Sender).Canvas.Brush.Color := clWhite;
end;
end;
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if cdsSelected in State then
TListView(Sender).Canvas.Brush.Color := clSilver
else
TListView(Sender).Canvas.Brush.Color := clWhite;
end;
end.
← →
ЮЮ © (2006-06-08 04:44) [5]код из ListView1AdvancedCustomDrawSubItem следует поместитить ListView1CustomDrawSubItem - и этого обработчика вполне хватит
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.103 c