是有可能设置一个TDBGrid中(或TwwDBGrid)细胞只读在Delphi? 目前,我与字面花白的细胞和编辑后清除它摆弄周围,但它不是很理想。
干杯,杰米
是有可能设置一个TDBGrid中(或TwwDBGrid)细胞只读在Delphi? 目前,我与字面花白的细胞和编辑后清除它摆弄周围,但它不是很理想。
干杯,杰米
特定的细胞或一列中的所有单元?
您可以设置一栏,只读了这种方式:
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
属性。