bastel momentan in Pascal ein Schach.
Es funktioniert soweit, habe es mit Delphi (10.3) geschrieben und wollte nun wegen der Möglichkeit es für Linux zu compilieren unter Lazarus weitermachen.
Zum zeichnen der Figuren und als Spielbrett wird ein Stringgrid verwendet, weil es imho dafür passende Eigenschaften hat und ich ein Anfänger in Pascal bin (sieht man am Code

Nun zum eigentlichem Problem:
Zum zeichnen der Figuren und Feldmarkierungen wird das Canvas des Stringgrids verwendet,
aber nach dem Belegen des Stringgrids mit den Figuren also Stringgris.Objects[Index1,Index2] werden die einzelnen Zellen des Stringgrids mit deren ID's gefüllt (Eigenschaft Cells) obwohl das nirgendwo im eigentlichen Code passiert, desweiteren wird das gezeichnete sofort überdeckt. Das überdecken fällt vorallem beim Spielladen auf, da man kurzzeitig die Figuren wie auf Bild 1 sieht und dann diese vom Zellinhalt (oder mehr?) überdeckt werden (Bild 2).
Die eigentliche Spielmechanik funktioniert, nachgeprüft durch klicken auf die Zellen zum Bewegen der Figuren, dann speichern und dann laden im funktionierenden mit Delphi compilierten.
Mit Delphi:

Mit Lazarus:

Den Code zum Schach hab ich über Git auf https://codeberg.org/Themanwhoisit/Schach hochgeladen (bitte nicht erschrecken).
Hat wer ne Idee zum entscheidenden Unterschied wie ich in Lazarus das Stringgrid als Spielbrett nutzen kann?
MfG Themanwhoisit
// Edit ich hab dem Button mal ne Funktion gegeben unter Lazarus:
Code: Alles auswählen
procedure TfrmSchach.Button1Click(Sender: TObject);
begin
stringgrid2.cells[0,0]:='KEKSE';
showmessage(stringgrid2.cells[0,0]);
end;
0 0
und der Text im Stringgrid ändert sich nicht.