Das hängt von Deiner Programm-Architektur ab. Bei mir gibts ein Grid, in dem alles definiert ist. Und dieses vererbe ich weiter. In den Stringgrid-Objekten habe ich alles für die Zellen nötige hinterlegt : Color, MouseSelect (ähnlich wie dein editable) und einiges mehr. In dem Ursprungsgrid sind die Events auch hinterlegt und die Prozeduren, Werte zu ändern. z.B. so :
Delphi-Quellcode:
procedure Tfrm.ChangeEditObjectMouseSelect (ACol, ARow : integer; // zum Ändern von
MouseSelect : boolean); // Eigenschaften pro Zelle
begin
if sgNr.Objects[ACol, ARow] <> nil then
(sgNr.Objects[ACol, ARow] as TEditObject).MouseSelect := MouseSelect;
end;
Will ich nun eine Zelle sperren, dann rufe ich das einfach so auf :
ChangeEditObjectMouseSelect (2,2,false);
In diesem Fall käme ich an Zelle 2,2 nicht mehr dran.