DBGrid를 가진 일부 셀을 설정, 내가 읽은 상태로 (이 열과 모든 셀) 일부 셀을 설정해야 만. 내가 field1
에서 "No
"값이 우리가 필드 Tx
에 편집을 가능하게한다있는 경우DBGrid를, 우리는 약간의 열을 설정할 수 있습니다 읽기 전용
당신은 내 이미지를 볼 수 있습니다. 하지만 "Yes
"값이있는 경우 Tx
필드를 ReadOnly
으로 설정해야합니다.
그렇게 할 수 있습니까?
DBGrid를 가진 일부 셀을 설정, 내가 읽은 상태로 (이 열과 모든 셀) 일부 셀을 설정해야 만. 내가 field1
에서 "No
"값이 우리가 필드 Tx
에 편집을 가능하게한다있는 경우DBGrid를, 우리는 약간의 열을 설정할 수 있습니다 읽기 전용
당신은 내 이미지를 볼 수 있습니다. 하지만 "Yes
"값이있는 경우 Tx
필드를 ReadOnly
으로 설정해야합니다.
그렇게 할 수 있습니까?
예, 가능합니다. 이에 대한 해결책의 핵심은 그리드에 연결된 데이터 세트의 데이터 세트 커서가 TDBGrid가 코딩 된 방식 때문에 그리드의 현재 행에 동기화된다는 사실입니다.
따라서 데이터 세트에 AfterScroll
이벤트를 설정하고 그리드의 ReadOnly 속성을 코드에 설정하면됩니다. 내 경우에는 다음과 같이 잘 작동합니다.
procedure TForm1.CDS1AfterScroll(DataSet: TDataSet);
begin
DBGrid1.Columns[4].ReadOnly := Odd(CDS1.FieldByName('ID').AsInteger);
end;
분명히 예/아니오 필드의 내용을 테스트 할 수 있습니다.
열이 읽기 전용인지 여부를 결정하는 데 사용하는 필드 값의 변경에 대해 표가 즉시 반응하게하려면 데이터 집합의 AfterEdit
이벤트에서 동일한 코드를 실행해야합니다.
@ user6751794 :이 질문에 답변이 되었습니까? – MartynA
중복 : http://stackoverflow.com/questions/16042975/set-some-cells-in-tdbgrid-to-editable –