Ich habe einmal
Delphi-Quellcode:
PROCEDURE TMainForm.ColorGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
BEGIN
WITH ColorGrid.Canvas DO
BEGIN
CASE (ACol * ARow) MOD 11 OF
0: Brush.Color := clBtnFace;
1: Brush.Color := clYellow;
2: Brush.Color := clWhite;
3: Brush.Color := clBlue;
4: Brush.Color := clRed;
5: Brush.Color := clNavy;
6: Brush.Color := clMaroon;
7: Brush.Color := clGreen;
8: Brush.Color := clAqua;
9: Brush.Color := clFuchsia;
10: Brush.Color := clPurple;
END;
IF (ColorGrid.Selection.Left = ACol) AND (ColorGrid.Selection.Top = ARow) THEN
Brush.Color := clLime;
FillRect(Rect);
Font.Color := Brush.Color XOR 65535;
TextOut(Rect.Left, Rect.Top, ColorGrid.Cells[ACol, ARow]);
END;
END;
von hier
Beispiel
Das geht auch und in meinem Programm geht es so auch aber wenn ich das so umbauen will, weil ich viel Grids hab die unterschiedlich eingefärbt werden sollen hab ich gemacht
Delphi-Quellcode:
procedure Tfrm_Objektuebersicht.stg_patenschaftenDrawCell(Sender: TObject;
ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var reihen : Array od Integer;
begin
setlength(reihen,1);
reihen[0] := 1;
Gridcolor(Sender,ACol, ARow, Rect, State, reihen);
end;
Also quasi einen Parameter dazu gemacht welche Spalten er einfügen soll und dann sieht die GridColor Procedure so aus
Delphi-Quellcode:
procedure Gridcolor(Sender: TObject;
ACol, ARow: Integer; Rect: TRect; State: TGridDrawState; geldrows : Array of Integer);
var check : boolean;
i : integer;
begin
with Sender as TStringgrid do
begin
WITH Canvas DO
BEGIN
check := false;
for i := 0 to length(geldrows)-1 do
begin
if ARow = geldrows[i] Then check := true;
end;
if (ARow <> 0) AND (check) then
Brush.Color := schriftfarbe
else
Brush.Color := gridhintergrund;
END;
IF (Selection.Left = ACol) AND (Selection.Top = ARow) THEN
Brush.Color := clLime;
FillRect(Rect);
Font.Color := Brush.Color XOR 65535;
TextOut(Rect.Left, Rect.Top, Cells[ACol, ARow]);
END;
end;
end;
leider mault er dann =>
Zitat:
[Error] U_extra.pas(684): Incompatible types: 'HDC' and 'TRect'
warum nur ?