Ohne Columns anzulegen kann man eine Spalte (oder Zeile, oder beliebige Zelle) mit Hilfe des OnSelectEditor-Events read-only machen, indem man als Rückgabewert für den zu verwendenden Editor den Wert nil angibt (oder EditorByStyle(cbsNone)):
Code: Alles auswählen
procedure TForm1.StringGrid1SelectEditor(Sender: TObject; aCol, aRow: Integer;
var Editor: TWinControl);
begin
if aCol = 1 then
Editor := nil;
// oder Editor := StringGrid1.EditorByStyle(cbsNone);
end;