Ich glaube du hast kompliziertere Vorstellungen als es tatsächlich ist. Oder dein Problem übersteigt meine geistigen Fähigkeiten.
1)
Mit
Cells[Int, Int]
hast du nichts anderes als einen Setter, der in ein internes String-Array des Stringgrid schreibt: Text. Anschließend ruft er intern InvalidateCell(..) auf welches mittels Windows-
API das Rechteck dieser Zelle "ivalidiert"- Es muss also neu gezeichnet werden.
2)
Und wenn neu gezeichnet wird kommt hierbei das OnDrawCell-Ereignis zum Tragen: Hier kannst du, als Benutzer des Stringgrids festlegen, wie wir uns nun in diesem Rechteck austoben können.
Spontan würde ich sagen dass es dazu mehr nicht zu sagen gibt.
PS: Comboboxen, Bilder, all sowas- Bist du sicher dass ein Stringgrid überhaupt das richtige ist und es keine bessere Lösung gibt? Ein Flowpanel mit dem ganzen Kram drin? Die
TVirtualTreeView-Komponente?