Bloquear edição em coluna de DBGrid
22/12/2020
0
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
Curtir tópico
+ 0
Responder
Post mais votado
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.
Emerson Nascimento
Responder
Mais Posts
22/12/2020
Ramboli
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
Responder
22/12/2020
Ramboli
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)