Tab por Enter em BitBtn
Olá rapaziada estou usando o seguinte procedimento para mudar o tab pelo enter no formulário:
procedure TFormBanco.FormKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 then
begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
If (ActiveControl is TBitBtn) then
Perform(VK_TAB, 0, 0);
end;
end;
Só que quando chega em um componente do tipo BitBtn para de funcionar este procedimento.
Alguém sabe o que devo fazer?
procedure TFormBanco.FormKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 then
begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
If (ActiveControl is TBitBtn) then
Perform(VK_TAB, 0, 0);
end;
end;
Só que quando chega em um componente do tipo BitBtn para de funcionar este procedimento.
Alguém sabe o que devo fazer?
Leandro Carvalho
Curtidas 0
Respostas
Alison Bissoli
31/01/2010
Qual seria o intúito deste tratamento justamente para TBitBtn, esperimente tirá-lo.
If (ActiveControl is TBitBtn) then
Perform(VK_TAB, 0, 0); http://garotodesktop.blogspot.com
Perform(VK_TAB, 0, 0); http://garotodesktop.blogspot.com
GOSTEI 0
Emerson Nascimento
31/01/2010
não sei, mas acho que não faz o mínimo sentido isso funcionar num botão qualquer.
quando se está num botão, o ENTER aciona o botão e não pula para outro TWinControl.
se, no botão, fosse feita essa troca, como o botão seria acionado? com a barra de espaço?
quando se está num botão, o ENTER aciona o botão e não pula para outro TWinControl.
se, no botão, fosse feita essa troca, como o botão seria acionado? com a barra de espaço?
GOSTEI 0
Alison Bissoli
31/01/2010
não tinha pensado nisso não, deve ser por isso mesmo o tratamento, pra quando estiver no bitbtn ele fazer o evento do botão, não anular a tecla pressionada, realmente, não faz sentido funcionar enter como tab em um componente que necessita do enter.
GOSTEI 0
Ricardo Araujo
31/01/2010
pode usar assim também que funcionar.
procedure TFrmCadastroPadrao.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_RETURN then
SelectNext(ActiveControl, true, true);
end;
só não esqueça de ativar a propriedade Keypreview.
procedure TFrmCadastroPadrao.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_RETURN then
SelectNext(ActiveControl, true, true);
end;
só não esqueça de ativar a propriedade Keypreview.
GOSTEI 0