als kleine Ergänzung bei unregelmäßigen Schreib-Sperren...
um jede zelle einzeln zu setzen hab ich die Schreibrechte in meinem DFMEditor in ein 2 dimensionales array ausgelagert (fixedcols=1,fixedrows=1,rows=7,cols=5):
Delphi-Quellcode:
const
SizeEditable:array[1..6,1..4] of boolean=(
(true,true,false,false),
(true,true,true,true),
(true,true,true,true),
(false,false,true,true),
(true,true,true,true),
(true,true,false,false)
);
procedure TForm_DFMOptions.StringGrid1SelectCell(Sender: TObject; Col,
Row: Integer; var CanSelect: Boolean);
begin
if SizeEditable[row,col] then
Stringgrid1.Options:=Stringgrid1.Options+[goEditing]
else
Stringgrid1.Options:=Stringgrid1.Options-[goEditing];
end;
hier sieht man, dass in Zeile 1 nur die ersten beiden Zellen editiert werden können in Zeile 2 und 3 dafür alle.
HTH Frank