Also ich war immer der Meinung, dass wenn eine Zelle nicht editiert werden darf (kein goEditing in Options), dass dann der Inhalt auch nicht durch reinkopieren geändert/editiert werden kann.
In der Ereignis-Prozedur OnSelectCell des SringGrid's kannst du zum Beispiel so verhindern, dass die Zelle [1, 1] markiert werden kann, demnach kann man dort auch nicht's reinkopieren.
Delphi-Quellcode:
Procedure TForm_.StringGridXSelectCell(Sender: TObject; ACol, ARow: Integer; Var CanSelect: Boolean);
Begin
CanSelect := (ACol <> 1) or (ARow <> 1);
End;
Ich würde dir auch empfehlen das andere auch noch dort reinzumachen, da das bei dir ja in 'ner MouseMove-Ereignisprozedure steht, könnte man ja locker die Felder auch mir der Tastatur anspringen, ohne das sie gesperrt werden
Delphi-Quellcode:
Procedure TForm_.StringGridXSelectCell(Sender: TObject; ACol, ARow: Integer; Var CanSelect: Boolean);
Begin
CanSelect := (ACol <> 1) or (ARow <> 1);
// ist 'frei' dann Eingabe unmöglich machen
if DayList[ACol].isfree Then
Stringgrid1.Options := StringGrid1.Options - [goEditing]
else
Stringgrid1.Options := StringGrid1.Options + [goEditing];
End;