KeyDown não funciona em alguns controles...
25/11/2020
0
tenho, uma dbGrid no meu form e quando eu aperto a tecla Down ele vai direto para o FormKeyDown, la eu tenho o seguinte código:
Quando eu tento navegar na dbGrid e passa por esse código da erro de violação de acesso por que o ActiveControl deveria ser o dbGrid e está vindo NIL.
vou deixar ai o código.
if (key = VK_DOWN) and not (Pos(Copy(TControl(ActiveControl).Name,1,3),'mem.cbb.dbg') > 0) then selectNext(ActiveControl,True,True);
Quando eu tento navegar na dbGrid e passa por esse código da erro de violação de acesso por que o ActiveControl deveria ser o dbGrid e está vindo NIL.
vou deixar ai o código.
procedure TfrmTelaPrincipal.btnTelaPrincipal_ProcessosClick(Sender: TObject); begin if frmManutencaoProcessos = Nil then begin frmManutencaoProcessos := TfrmManutencaoProcessos.Create(self); frmManutencaoProcessos.Parent := frmTelaPrincipal; end; vOpcaoMenu := 'PROCESSOS'; frmManutencaoProcessos.Show; end; procedure TfrmManutencaoProcessos.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key = VK_RETURN) and not (Copy(TControl(ActiveControl).Name,1,3) = 'dbm') then selectNext(ActiveControl,True,True); if (key = VK_DOWN) and not (Pos(Copy(TControl(Sender).Name,1,3),'mem.cbb.dbg') > 0) then <== Aqui da o erro selectNext(ActiveControl,True,True); if (key = VK_UP) and not (Copy(TControl(ActiveControl).Name,1,3) = 'cbb.') then selectNext(ActiveControl,False,True); if (key = VK_ESCAPE) and (pnStatusManutencao.Caption='Consultando') then btnTelaInicialClick(Sender); if (key = VK_ESCAPE) and (Pos(pnStatusManutencao.Caption,'Incluindo.Alterando') > 0) then btnCancelarClick(Sender); end;
Eduardo Silva
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)