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

Вниз

Цвет колоны в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
15-1151040139
Ega23
2006-06-23 09:22
2006.07.23
С Днём рождения! 23 июня


2-1152091212
Новинький
2006-07-05 13:20
2006.07.23
TADOStoredProc


2-1151858235
МишаК
2006-07-02 20:37
2006.07.23
программирование и интернет


15-1150180363
Мазут Береговой
2006-06-13 10:32
2006.07.23
Американцы не были на Луне... однозначно!


2-1151919058
SDF
2006-07-03 13:30
2006.07.23
Сообщение Onмауспокинулконтрол