xe5 de Listview için daha önce satır rengi için kullandığım kod bugün başka bir "10.1 berlin" ile yapmış olduğum projede kullanmak istediğimde ([dcc32 Fatal Error] FLOlist.dpr(16): F2063 Could not compile used unit 'Main.pas') hatası vermeye başladı, bunun sebebi ne olabilir.
Kod: Tümünü seç
procedure TSplitViewForm.ListemCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
R: TRect;
I, NC, TotWidth, Boyut: integer;
begin
Boyut := 12;
DefaultDraw := False;
With Sender.Canvas do
begin
if (Item.Index mod 2) = 0 then
begin
Sender.Canvas.Font.Size := Boyut;
Sender.Canvas.Font.Style := [fsBold];
Sender.Canvas.Font.Color := clBlack;
Sender.Canvas.Pen.Color := clGreen;
Sender.Canvas.Brush.Color := RGB(255, 255, 255);
end
else
begin
Sender.Canvas.Font.Size := Boyut;
Sender.Canvas.Font.Style := [fsBold];
Sender.Canvas.Font.Color := clBlack;
Sender.Canvas.Pen.Color := clGreen;
Sender.Canvas.Brush.Color := RGB(248, 248, 255);
end;
if Item.Selected then // Seçili satır
begin
Sender.Canvas.Font.Size := Boyut;
Sender.Canvas.Font.Style := [fsBold];
Sender.Canvas.Font.Color := clWhite;
Sender.Canvas.Pen.Color := clGreen;
Sender.Canvas.Brush.Color := RGB(255, 69, 0);
end;
FillRect(Item.DisplayRect(drBounds));
R := Item.DisplayRect(drLabel);
TextRect(R, R.Left, R.Top + 8, Item.Caption);
NC := Min(Item.SubItems.Count + 1, TListView(Sender).Columns.Count);
if NC < 2 then
Exit; // TotWidth := Sender.Column[0].Width;
TotWidth := 62;
for I := 1 to NC - 1 do
begin
TextOut(R.Left + TotWidth, R.Top + 8, Item.SubItems[I - 1]);
TotWidth := TotWidth + Sender.Column[I].Width;
end;
end;
end;
Kod: Tümünü seç
NC := Min(Item.SubItems.Count + 1, TListView(Sender).Columns.Count);
