procedure TForm3.FormCreate(Sender: TObject);
var
Col, Row: integer;
begin
// Set the sizes of the arrays
SetLength(FG, Grid.ColCount, Grid.ColCount);
SetLength(BG, Grid.ColCount, Grid.ColCount);
// Initialize with default colors
for Col := 0
to Grid.ColCount - 1
do begin
for Row := 0
to Grid.RowCount - 1
do begin
FG[Col, Row] := clBlack;
BG[Col, Row] := clWhite;
end;
end;
end;
procedure TForm3.GridClick(Sender: TObject);
var
Col, Row: integer;
Colo1, Colo2, Colo3: byte;
begin
Col := Grid.Col;
Row := Grid.Row;
// Calculate contrasting random colours
Colo1 := 200 + Random(56);
Colo2 := 200 + Random(56);
Colo3 := 100 + Random(156);
BG[Col, Row] :=
RGB(Colo1, Colo2, Colo3);
FG[Col, Row] :=
RGB(255 - Colo3, 255 - Colo1, 255 - Colo2);
// Set the text to be displayed
Grid.Cells[Col, Row] := '
clicked';
end;
procedure TForm3.GridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect;State: TGridDrawState);
var S:
string;
begin
S := Grid.Cells[ACol, ARow];
// Fill rectangle with colour
Grid.Canvas.Brush.Color := BG[ACol, ARow];
Grid.Canvas.FillRect(Rect);
// Next, draw the text in the rectangle
Grid.Canvas.Font.Color := FG[ACol, ARow];
Grid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, S);
end;