Ich habe mal einem StringGrid Objekte zugeordnet. Dazu habe ich dynamisch für jede Zelle das Object erzeugt. Wenn du z.B 100 Zellen hast, musst du auch 100 deiner TStatus Objekte erstellen die dann im Speicher liegen. Beim erstellen der Objekte diese natürlich deinen Zelle zuordnen.
so z.B.
Code:
var
Status: TStatus;
begin
.
.
Status:=TStatus.Create(); // das für jede Zelle durchführen
Stringgrid.Objects[ACol,ARow]:=Status;
.
.
end;
In CellDraw kannst du dann daruf zugreifen (NUR LESEN).
Code:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
Status: TStatus;
Farbe: Tcolor;
begin
.
.
Status:=StringGrid.Objects[ACol,ARow];
Farbe:=Status.Fcolor1;
.
.
end;
Du kannst dann irgend wo im Code die eigenschaften der Objekte ändern.
Wenn du zur Laufzeit Neue Zellen erstellst musst du nur weitere Objekte erstellen und wenn du Zeilen löschste gebe sie frei mit Status.Free.
Meinst du das? Hilft dir das weiter oder habe ich dich immer noch nicht richtig verstanden?