Utilizando o Enter ao invés do TAB em projetos CLX
Essa dica é para quem tem projetos CLX para utilizar em Linux ou Windows.
1º - No evento OnShow do formulário principal coloque o seguinte código:
Application.OnEvent := ApplicationEvent;
Esse código deve ser o último, caso você já tenha outros código no mesmo evento (OnShow)
2º - Suba até a seção "private" da unit
3º - Abaixo da palavra "private" coloque a seguinte linha, que irá criar um procedimento:
procedure ApplicationEvent(Sender: QObjectH; Event: QEventH; var Handled: Boolean);
4º - Com o cursor do mouse posicionando na linha que você acabou de digitar, pressione
as teclas CTRL+SHIFT+C
Isso montará a estrutura do procedimento.
5º - Copie o código abaixo para o procedimento que você acabou de criar. Copie acima da linha Begin do procedimento pois o código abaixo cria uma variável.
Var
CurrForm:TForm;
begin
if (QEvent_type(Event) = QEventType_keyPress) and
(QKeyEvent_key(QkeyEventH(Event)) = KEY_RETURN) then
begin
if Screen.ActiveControl is TDBGrid then
begin
with TDBGrid(Screen.ActiveControl) do
begin
if SelectedIndex = Columns.Count-1 then
begin
SelectedIndex:=0;
DataSource.DataSet.Next;
end
else
SelectedIndex:=SelectedIndex+1;
end;
Handled:=True;
end
else
if not (Screen.ActiveControl is TBitBtn) then
if not (Screen.ActiveControl is TButton) then
begin
CurrForm:=Screen.ActiveForm;
if Assigned(CurrForm) then
THackForm(CurrForm).SelectNext(CurrForm.ActiveControl, True, True);
Handled:=True;
end
else
Handled:=False;
end;
6º Na Cláusula Uses adicione: Qt, QDBGrids, QButtons;
7º Suba até a seção "public".
8º Abaixo da seção public tem um end; Posicione o cursor nessa linha e declare o objeto abaixo:
THackForm = class(TForm);
Esse código cria uma variável também do tipo formulário.
Pronto agora é só compilar e ver todos os seus formulários com o Enter funcionando como Tab em projetos CLX.