Fórum Bloquear edição em coluna de DBGrid #613615
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
Gostei + 1
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
Gostei + 0
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)