Specific cell or all cells in one column?
다음과 같은 방식으로 읽기 전용으로 열을 설정할 수 있습니다.
TDBGrid.Colums[IndexOfColumn].ReadOnly := True;
특정 셀을 제어하려는 경우 OnCellClickEvent에서 "보호"체계를 프로그래밍 할 수 있습니다. TDBGrid.Colums [IndexOfColumn] .ReadOnly를 설정할 수도 있습니다. : = True; 주어진 셀이 읽기 전용이어야하는 경우. 다음과 같은 것 :
procedure TForm.DBGridCellClick(Column: TColumn);
begin
Column.ReadOnly := ConditionForReadOnly(Column);
end;
편집 후 :
이 솔루션을 확인했으며 작동합니다.
예를 들어, 다음보다 큰 열의 셀만 편집하고 값이 0 (편집 가능)이어야하는 경우 보호 체계는 다음과 같습니다.
procedure TForm.DBGridCellClick(Column: TColumn);
begin
Column.ReadOnly := (qry['FieldWithValue'] <> 0) or (Column.Index < 1); //Index is 0-based
end;
-------------------Wodzu가 말했듯 TColumn
이 ReadOnly
속성이 있습니다.
출처
https://stackoverflow.com/questions/2005784