Hi,
ich denke mal du machst einfach die Hintergrund-Farbe der Zellen im OnDrawCell-Ereignis farbig?
Dann wäre es ja theorethisch wohl das simpelste, die entsprechende Farbe in der Objects-Eigenschaft zu speichern, z.B. so:
Delphi-Quellcode:
//Farbe für die aktive Zelle speichern
procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.Objects[StringGrid1.Col, StringGrid1.Row]:=Pointer(clRed);
StringGrid1.Invalidate;
end;
//OnDrawCell des StringGrids
procedure TForm1.StringGrid1DrawCell(...);
begin
if (StringGrid1.Objects[ACol, ARow]<>nil) then
begin
StringGrid1.Canvas.Brush.Color:=TColor(StringGrid1.Objects[ACol, ARow]);
StringGrid1.Canvas.Rectangle(Rect);
end;
end;
Ich hoffe das meinstest du und ich habe dein Problem nicht komplett falsch verstanden