Bloquear edição em coluna de DBGrid
Olá, estou precisando bloquear a edição em uma coluna especifica do DBGrid, Fiz assim no OnCellClick:
Porem ele desativa toda a grid, e so volta a funcionar caso eu clique com o mouse em uma coluna que não seja a 0 ou a 1, mudar a celula com o TAB ou o ENTER não reabilita a grid, tentei fazer o mesmo codigo no OnExit, porem não avança de celula dai, alguem ai consegue me dar uma luz?
Deste já agradeço
if ((RzDBGrid1.SelectedIndex = 0) or (RzDBGrid1.SelectedIndex = 1)) then begin RzDBGrid1.ReadOnly := True; raise Exception.Create('Não é permitido a alteração!'); end else RzDBGrid1.ReadOnly := False;
Porem ele desativa toda a grid, e so volta a funcionar caso eu clique com o mouse em uma coluna que não seja a 0 ou a 1, mudar a celula com o TAB ou o ENTER não reabilita a grid, tentei fazer o mesmo codigo no OnExit, porem não avança de celula dai, alguem ai consegue me dar uma luz?
Deste já agradeço
Ramboli
Curtidas 0
Melhor post
Emerson Nascimento
22/12/2020
veja se a propriedade ReadOnly existe na coluna:
RzDBGrid1.Columns[1].ReadOnly
ou mesmo no dataset:
dataset.fieldbyname('xxxxx').ReadOnly := .T.
também pode ser feito diretamente do FieldsEditor.
RzDBGrid1.Columns[1].ReadOnly
ou mesmo no dataset:
dataset.fieldbyname('xxxxx').ReadOnly := .T.
também pode ser feito diretamente do FieldsEditor.
GOSTEI 1
Mais Respostas
Ramboli
22/12/2020
Olá, estou precisando bloquear a edição em uma coluna especifica do DBGrid, Fiz assim no OnCellClick:
Porem ele desativa toda a grid, e so volta a funcionar caso eu clique com o mouse em uma coluna que não seja a 0 ou a 1, mudar a celula com o TAB ou o ENTER não reabilita a grid, tentei fazer o mesmo codigo no OnExit, porem não avança de celula dai, alguem ai consegue me dar uma luz?
Deste já agradeço
if ((RzDBGrid1.SelectedIndex = 0) or (RzDBGrid1.SelectedIndex = 1)) then begin RzDBGrid1.ReadOnly := True; raise Exception.Create('Não é permitido a alteração!'); end else RzDBGrid1.ReadOnly := False;
Porem ele desativa toda a grid, e so volta a funcionar caso eu clique com o mouse em uma coluna que não seja a 0 ou a 1, mudar a celula com o TAB ou o ENTER não reabilita a grid, tentei fazer o mesmo codigo no OnExit, porem não avança de celula dai, alguem ai consegue me dar uma luz?
Deste já agradeço
Esqueçe, surgiu uma luz aqui, mudei o codigo para:
if ((RzDBGrid1.SelectedIndex = 0) or (RzDBGrid1.SelectedIndex = 1)) then begin RzDBGrid1.SelectedIndex := 2; raise Exception.Create('Não é permitido a alteração!'); end else RzDBGrid1.ReadOnly := False;
Abraço
GOSTEI 0
Ramboli
22/12/2020
veja se a propriedade ReadOnly existe na coluna:
RzDBGrid1.Columns[1].ReadOnly
ou mesmo no dataset:
dataset.fieldbyname('xxxxx').ReadOnly := .T.
também pode ser feito diretamente do FieldsEditor.
RzDBGrid1.Columns[1].ReadOnly
ou mesmo no dataset:
dataset.fieldbyname('xxxxx').ReadOnly := .T.
também pode ser feito diretamente do FieldsEditor.
Obrigado amigo, deu certo aqui
GOSTEI 0