domingo, 20 de março de 2011

Enter no Lugar do Tab até no Grid


Esta dica vem para complementar a publicada recentemente: "Transformando a tecla Enter em Tab". O código já é conhecido, e transformará o Enter no Tab mesmo o foco estando em um Grid e, caso em algum momento alguma coluna no grid estiver oculta, será ignorada e o foco irá para a próxima coluna visível.
Este código deve ser colocado no evento onKeyPress do form, lembrando de deixar a propriedade KeyPreview como True.

  if Key = #13 then // se foi enter
  begin
     if not (ActiveControl is TDBGrid) then
     begin
        Key := #0;   // suprime som
        Perform(WM_NEXTDLGCTL, 0, 0);
     end
     else if (ActiveControl is TDBGrid) then
        with TDBGrid(ActiveControl) do
        begin
           repeat
              if selectedindex < (fieldcount - 1) then
                 selectedindex := selectedindex + 1
              else
                 selectedindex := 0;
           until Columns[selectedindex].visible
        end;
  end;

Nenhum comentário:

Postar um comentário