Главная страница
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.47 MB
Время: 0.029 c
3-1147923590
V-A-V
2006-05-18 07:39
2006.07.23
Запрос на объединение


15-1150823390
Alx2
2006-06-20 21:09
2006.07.23
Ителлектуальная собственность


15-1151392880
Ega23
2006-06-27 11:21
2006.07.23
Посоветуйте ToolBar


15-1150700740
Ламот
2006-06-19 11:05
2006.07.23
WinXP не хочет ставиться :(


2-1151954112
UMU
2006-07-03 23:15
2006.07.23
Узнать количество пикселей