Wollte ich auch gerade schreiben, als mir per Mail deine Antwort angekündigt wurde...
@ForenHeini:
Zur Erklärung: Du schreibst in Zeile 23 "Stringgrid2.Canvas.TextOut(StringGrid2.Canvas", aber der erste Paraeter ist (neben der Tatsache, dass er eben auch wirklich nicht vorhanden ist) auch rein logisch nicht sinnvoll. Du sagst, dass etwas auf Stringgrid2.Canvas gezeichnet werden soll. Aber wenn du das sowieso dem Canvas sagst, warum solltest du dem Canvas nochmal sich selbst übergeben? Der Canvas weiß ja, dass sich der Befehl auf die Zeichenfläche, die das Objekt selbst repräsetiert, bezieht...
Das hat aber nichts mit der von dir geposteten Fehlermeldung zu tun, das ist nur ein weiterer Fehler...
Bei mir kommt die Fehlermeldung auch mit deinem Code nicht, das heißt, es reicht eventuell, wenn du einfach den geposteten Code wieder zurück in dein Programm kopierst und dabei den jetzt vorhandenen überschreibst...