KeyDown não funciona em alguns controles...
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
Curtidas 0