Guten Abend,
so läuft es bei mir:
Delphi-Quellcode:
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
aCol, ARow :Integer;
begin
(sender as TStringGrid).MouseToCell(x,y,Acol,ARow);
zahlen[StrToInt((sender as TStringGrid).Cells[ACol,ARow])]:=true;
end;
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if ((sender as TStringGrid).Cells[ACol,ARow] <> '') and
(zahlen[StrToInt((sender as TStringGrid).Cells[ACol,ARow])]) then
begin
with (sender as TStringGrid) do
begin
canvas.Brush.Color:=clYellow;
canvas.FillRect(rect);
Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, (sender as TStringGrid).Cells[ACol, ARow]);
end;
end;
end;
Delphi-Quellcode:
private
zahlen : Array [1..49] of Boolean;
{ Private declarations }
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
i:Byte;
begin
for i:=1 to 49 do
zahlen[i]:=false;
end;
das Zurücksetzen der Farben wirst Du dann wohl selbsständig hinbekommen.
Auch solltest Du noch überprüfen, daß nicht zuviele Zahlen markiert werden können.
Grüße
Klaus
Grüße
Klaus